diff --git a/404.html b/404.html index 60bf88b1..fb888c8c 100644 --- a/404.html +++ b/404.html @@ -1,6 +1,6 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/404/index.html b/404/index.html index c79db87f..07477283 100644 --- a/404/index.html +++ b/404/index.html @@ -1,6 +1,6 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/_gatsby/slices/_gatsby-scripts-1.html b/_gatsby/slices/_gatsby-scripts-1.html index bcbcd4f8..bb10610e 100644 --- a/_gatsby/slices/_gatsby-scripts-1.html +++ b/_gatsby/slices/_gatsby-scripts-1.html @@ -2,6 +2,6 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/blog/10582553-73a2-569f-8bdd-980e1f77c10a/index.html b/blog/10582553-73a2-569f-8bdd-980e1f77c10a/index.html new file mode 100644 index 00000000..f75ceeb6 --- /dev/null +++ b/blog/10582553-73a2-569f-8bdd-980e1f77c10a/index.html @@ -0,0 +1,187 @@ +CodeCave Blog | STREAMLINING CHANGELOG CREATION WITH AZURE DEVOPS AND CONFLUENCE
Reading time: 3m.

Streamlining Changelog Creation with Azure DevOps and Confluence

Streamlining Changelog Creation with Azure DevOps and Confluence

+

In the fast-paced world of software development, maintaining a detailed record of changes is crucial. Changelogs serve as a vital tool, tracking every update, fix, or feature added to a project. Integrating Azure DevOps with Confluence can create a seamless changelog management system that enhances transparency and efficiency. This blog post explores how to automate changelog creation in Confluence using a PowerShell script that extracts release information from an Azure DevOps repository.

+

+ + + Self-Hosted build Agent for Azure Pipelines + +

+

By the end of this article, you will have a script that automates the extraction of changelog information from the latest and previous versions of a repository using Git commands. It then uses the ConfluencePS module to create a new Confluence page displaying the changelog. The script is configured to run in Azure Pipelines under certain conditions, such as when a new tag is created in the repository.

+

Let’s start!

+

What do we need?

+
    +
  1. Receive release information.
  2. +
  3. Retrieving the changelog between previous and latest version.
  4. +
  5. Create a Confluence page.
  6. +
  7. Integration with Azure pipelines.
  8. +
+

Let's start by preparing Confluence to create a new changelogs folder. To do this we need to follow these steps:

+

Step 1: Creating a Parent Page:

+

• Sign in to your Confluence account.

+

• Go to the Space where you want to create the changelogs folder.

+

• Create a new page that will serve as the parent page for all future changelogs pages. This can be done by selecting "Create" and following the instructions to create a page.

+

Step 2: Getting SpaceKey:

+

• The SpaceKey is usually shown in the URL when you are in a Confluence space.

+

• If the key does not appear in the URL, you can find it by going to Space tools > Overview > Space details.

+

Step 3: Getting Parent Page ID:

+

• The Parent Page ID (ParentID) can be found in the URL when you are on the page that will serve as the parent of changelogs. In the page URL, look at the pageId parameter, this will be the ParentID.

+

Step 4: Confluence Site URL entry:

+

• Your Confluence site URL is the address you use to log into Confluence. For example, https://yourcompany.atlassian.net/wiki.

+

You now have all the information you need to create new changelogs pages using the script.

+
+

[⚠️ Warning:]Make sure you have the appropriate permissions to create and edit pages in your chosen Confluence space.

+
+

Step 5: Creating PowerShell Script

+

Now we create a file confluence.ps1 in the root of our repository.

+

Firstly our script gets a list of changes between these versions. (Line 1-11)

+

Next the script creates a new Confluence page that displays the change log, using the ConfluencePS module, passes it to the environment variable for our pipeline. (Line 13-33)

+
Param ([String]$username, [String]$password) # Get username and password options from Azure Pipeline
+$repoPath = "." # Set the repository path as the current directory
+$currentVersion = git describe --abbrev=0 HEAD  # Get the latest version of the repository using git
+# Write-Host $currentVersion
+$prevVersion = git describe --abbrev=0 $currentVersion^  #Get the previous version of the repository using git
+# Write-Host $prevVersion
+$changelog = git log --no-merges --pretty="- %s<br />" "$prevVersion..$currentVersion"  #Get the list of changes between the two versions using git
+# Write-Host $changelog
+# exit -0
+$confluenceUrl = "https://your.atlassian.net/wiki"  #Set the Confluence URL
+$securePassword = $password | ConvertTo-SecureString -AsPlainText -Force #Convert the password to a secure string
+$credentials = New-Object System.Management.Automation.PSCredential `
+     -ArgumentList $username, $securePassword   #Create a credential object for Confluence
+#Check if the module ConfluencePS is installed    
+if (-not (Get-Module -Name ConfluencePS -ListAvailable)) {
+    Install-Module -Name ConfluencePS -Scope CurrentUser -Force
+} 
+Import-Module ConfluencePS # Import the module ConfluencePS
+Set-ConfluenceInfo -BaseURI $confluenceUrl -Credential $credentials   #Set the information about Confluence using the URL and credentials
+$body = @"
+<h2>What's new in comparison with version $prevVersion</h2>
+<pre>$changelog</pre>
+"@
+$page = New-ConfluencePage -Title "What's new in $currentVersion" -SpaceKey YOURSPACEKEY -ParentID YOUR_PARENT_ID -Body $body  #Create a new Confluence page with the given title, space key and body
+$pageObj = Get-ConfluencePage -PageID $page.ID     # Get the Confluence page object by ID
+Write-Output $pageObj.URL     #Print the page URL to the screen
+Write-Host "##vso[task.setvariable variable=confluenceUrl]$($pageObj.URL)"    #Set the variable confluenceUrl for Azure Pipeline using the page URL
+
+

[⚠️ Warning:] To use this script, you need to change the following:

+
+

$confluenceUrl to your Confluence site URL. (line 13)
+YOURSPACEKEY on the key of your space in Confluence. (line 30)
+YOUR_PARENT_ID on the ID of the parent page where the new page is to be created. (line 30)
+• Make sure you have Git installed and available in your script path.
+• Make sure you have rights to create pages in the specified Confluence space.
+• If you are not using Azure Pipeline, remove or modify the lines associated with Write-Host "##vso[task.setvariable variable=confluenceUrl]$($pageObj.URL)" to suit your runtime environment.

+

In the script, you can experiment with the body of the page and the list of data that you want to send to the changelog.

+

Step 6: Integration with Azure pipelines.

+

The task is configured to run in Azure Pipelines and only runs under certain conditions, such as when a new tag is created in the repository. +$USERNAME and $PASSWORD variables are stored in pipeline secrets and are passed during pipeline startup. The task causes our script to run.

+
Azure Pipeline Task
+
+- task: PowerShell@2
+  condition: and(not(eq(variables['Build.Reason'], 'PullRequest')), BeginsWith(variables['Build.SourceBranch'], 'refs/tags/'))
+  displayName: Create a changelog and create a page in Confluence.
+  inputs:
+    file path: .\confluence.ps1
+    arguments: '-username $(USERNAME) -password $(PASSWORD)'
+

Add it to your Azure pipeline. As a result, we have a page with changes!

+

Conclusion

+

Automating change logs with Azure DevOps and Confluence simplifies the documentation process and keeps information up to date. This approach allows teams to focus on development, leaving the routine work of documenting changes.

+

This blog provides a high-level overview of the integration process and can serve as a starting point for teams looking to improve their change management processes. We hope it was useful.

+

We wish you a great mood and interesting tasks!

Read more on

#devops
#azure devops
#confluence
#changelog

Share this post

like

Congratulations! Now you can show off with your new knowledge!

If you want us to uncover some other Well unknown facts, you can contact us via the socials or e-mail below. See you!

+ + \ No newline at end of file diff --git a/blog/1f201db1-7d1d-5ef0-b138-fe7b3dc57ba8/index.html b/blog/1f201db1-7d1d-5ef0-b138-fe7b3dc57ba8/index.html index 72475ebb..372ed027 100644 --- a/blog/1f201db1-7d1d-5ef0-b138-fe7b3dc57ba8/index.html +++ b/blog/1f201db1-7d1d-5ef0-b138-fe7b3dc57ba8/index.html @@ -1,6 +1,6 @@ -
Reading time: 3m.

Awesome post 5

Part 1

+ }]);
Reading time: 3m.

Awesome post 5

Part 1

Part 2 - \ No newline at end of file + \ No newline at end of file diff --git a/blog/45775c6a-7cd8-5018-9047-afbec09abf59/index.html b/blog/45775c6a-7cd8-5018-9047-afbec09abf59/index.html index 9914b306..75bb19b0 100644 --- a/blog/45775c6a-7cd8-5018-9047-afbec09abf59/index.html +++ b/blog/45775c6a-7cd8-5018-9047-afbec09abf59/index.html @@ -1,6 +1,6 @@ -

Reading time: 3m.

Awesome post 1

Reading time: 3m.

Awesome post 1

@@ -180,6 +180,6 @@

One more list:

- \ No newline at end of file + \ No newline at end of file diff --git a/blog/6a129001-a171-5d7e-9555-a943ae9d624f/index.html b/blog/6a129001-a171-5d7e-9555-a943ae9d624f/index.html index 1a3a3a49..f3c9d28f 100644 --- a/blog/6a129001-a171-5d7e-9555-a943ae9d624f/index.html +++ b/blog/6a129001-a171-5d7e-9555-a943ae9d624f/index.html @@ -1,6 +1,6 @@ -
Reading time: 1m.

Awesome post 3

Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source. Lorem Ipsum comes from sections 1.10.32 and 1.10.33 of "de Finibus Bonorum et Malorum" (The Extremes of Good and Evil) by Cicero, written in 45 BC. This book is a treatise on the theory of ethics, very popular during the Renaissance. The first line of Lorem Ipsum, "Lorem ipsum dolor sit amet..", comes from a line in section 1.10.32.

Read more on

#post
#articlename
#importanttopick

Share this post

like

Congratulations! Now you can show off with your new knowledge!

If you want us to uncover some other Well unknown facts, you can contact us via the socials or e-mail below. See you!

+ }]);
Reading time: 1m.

Awesome post 3

Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source. Lorem Ipsum comes from sections 1.10.32 and 1.10.33 of "de Finibus Bonorum et Malorum" (The Extremes of Good and Evil) by Cicero, written in 45 BC. This book is a treatise on the theory of ethics, very popular during the Renaissance. The first line of Lorem Ipsum, "Lorem ipsum dolor sit amet..", comes from a line in section 1.10.32.

Read more on

#post
#articlename
#importanttopick

Share this post

like

Congratulations! Now you can show off with your new knowledge!

If you want us to uncover some other Well unknown facts, you can contact us via the socials or e-mail below. See you!

- \ No newline at end of file + \ No newline at end of file diff --git a/blog/91d98aad-6ec6-5e71-b6ca-daff730c0ca4/index.html b/blog/91d98aad-6ec6-5e71-b6ca-daff730c0ca4/index.html index 727a4aed..65bddde9 100644 --- a/blog/91d98aad-6ec6-5e71-b6ca-daff730c0ca4/index.html +++ b/blog/91d98aad-6ec6-5e71-b6ca-daff730c0ca4/index.html @@ -1,6 +1,6 @@ -
Reading time: 3m.

Awesome post 6

Professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source. Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites

+ }]);
Reading time: 3m.

Awesome post 6

Professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source. Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites

Part 1

Part 2 - \ No newline at end of file + \ No newline at end of file diff --git a/blog/aa06b558-51ae-5f78-9989-0baadffbbc36/index.html b/blog/aa06b558-51ae-5f78-9989-0baadffbbc36/index.html index 95ce72d6..7b20849c 100644 --- a/blog/aa06b558-51ae-5f78-9989-0baadffbbc36/index.html +++ b/blog/aa06b558-51ae-5f78-9989-0baadffbbc36/index.html @@ -1,6 +1,6 @@ -

Reading time: 1m.

Awesome post 2

Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source. Lorem Ipsum comes from sections 1.10.32 and 1.10.33 of "de Finibus Bonorum et Malorum" (The Extremes of Good and Evil) by Cicero, written in 45 BC. This book is a treatise on the theory of ethics, very popular during the Renaissance. The first line of Lorem Ipsum, "Lorem ipsum dolor sit amet..", comes from a line in section 1.10.32.

Read more on

#post
#articlename
#importanttopick

Share this post

like

Congratulations! Now you can show off with your new knowledge!

If you want us to uncover some other Well unknown facts, you can contact us via the socials or e-mail below. See you!

+ }]);
Reading time: 1m.

Awesome post 2

Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source. Lorem Ipsum comes from sections 1.10.32 and 1.10.33 of "de Finibus Bonorum et Malorum" (The Extremes of Good and Evil) by Cicero, written in 45 BC. This book is a treatise on the theory of ethics, very popular during the Renaissance. The first line of Lorem Ipsum, "Lorem ipsum dolor sit amet..", comes from a line in section 1.10.32.

Read more on

#post
#articlename
#importanttopick

Share this post

like

Congratulations! Now you can show off with your new knowledge!

If you want us to uncover some other Well unknown facts, you can contact us via the socials or e-mail below. See you!

- \ No newline at end of file + \ No newline at end of file diff --git a/blog/c924c93c-fac0-517e-92e7-c5b5aaa083c2/index.html b/blog/c924c93c-fac0-517e-92e7-c5b5aaa083c2/index.html new file mode 100644 index 00000000..6015c73a --- /dev/null +++ b/blog/c924c93c-fac0-517e-92e7-c5b5aaa083c2/index.html @@ -0,0 +1,175 @@ +CodeCave Blog | PROXMOX VM TEMPLATES AND CLOUD-INIT
Reading time: 3m.

Proxmox VM Templates and Cloud-Init

Proxmox and Cloud-Init virtual machine templates

+

In the world of virtualization, efficiency and automation are key. This is where Proxmox Virtual Environment (VE) comes into play, offering a robust solution for easily managing virtual machines (VMs). One of the most interesting features of Proxmox is the ability to use virtual machine templates in combination with Cloud-Init, which simplifies the deployment process and makes it as smooth as in the cloud. +Let's figure it out.

+

+ + + Proxmox VM Templates and Cloud-Init + +

+

What is Proxmox?

+

Proxmox is a free and open source virtualization platform, which means anyone can use or modify it at no cost. It's like a set of tools that allows you to create multiple isolated computers (virtual machines) on a single physical machine. These virtual machines can simultaneously run multiple operating systems such as Windows or Linux, making them versatile for testing, development, or even production environments.

+

Proxmox is the manager of these virtual environments. It uses a technology called KVM (kernel-based virtual machine), which ensures that each virtual machine runs smoothly without interfering with others. In addition, Proxmox can handle so-called containers via LXC (Linux Containers), which are even lighter than VMs and great for running individual applications with minimal overhead.

+

You also can manage your VMs and containers from a browser. Web-based interface designed to be user-friendly, so even those new to virtualization can get started without too much trouble.

+

What are Proxmox VM Templates?

+

Proxmox VM templates are essentially pre-configured VMs that serve as blueprints for creating new instances. They include the operating system, installed software, and system configurations. The beauty of templates is that they save time and ensure consistency across deployments. You can quickly spin up new VMs without going through the entire installation and configuration process each time.

+

The Role of Cloud-Init

+

Cloud-Init is a versatile package that supports various distributions and handles the initial setup of a VM instance, such as network configuration and SSH key distribution. When a VM boots for the first time, Cloud-Init applies the predefined settings, allowing for a hands-off approach to VM provisioning https://pve.proxmox.com/wiki/Cloud-Init_Support.

+

Combining Proxmox Templates with Cloud-Init

+

Integrating Cloud-Init with Proxmox VM templates brings the best of both worlds. Here's how you can leverage this combination to your advantage:

+

Step 1: Preparing Your Template

+

Start by preparing your VM with the desired configuration. Install the operating system and all necessary packages, including Cloud-Init. Once your VM is ready, convert it into a template to serve as the foundation for future VMs.

+

Below is the script we use to create the template:

+
#! /bin/bash
+
+# Install Cloud-Init enabled Ubuntu VM in Proxmox
+
+# Download Ubuntu Cloud Image (Ubuntu 22.04 cloudimg)
+wget https://cloud-images.ubuntu.com/jammy/current/jammy-server-cloudimg-amd64.img
+
+# Install qemu-guest-agent on Ubuntu Cloud Image
+# The libguestfs-tools package must be installed on the system where the ubuntu cloudimg will be modified.
+apt-get update
+apt-get install libguestfs-tools
+
+# This step will install qemu-guest-agent on the Ubuntu cloud image via virt-customize.
+virt-customize -a jammy-server-cloudimg-amd64.img --install qemu-guest-agent
+
+# Install git
+virt-customize -a jammy-server-cloudimg-amd64.img --install git
+
+# Set environment variables. Change these as necessary.
+export STORAGE_POOL="DATA"
+export VM_ID="1000"
+export VM_NAME="jammy-template"
+
+# Create Proxmox VM image from Ubuntu Cloud Image.
+qm create $VM_ID --name $VM_NAME --memory 2048 --net0 virtio,bridge=vmbr2 --scsihw virtio-scsi-pci
+qm set $VM_ID --scsi0 $STORAGE_POOL:0,import-from=/root/jammy-server-cloudimg-amd64.img
+
+# Create Cloud-Init Disk and configure boot.
+qm set $VM_ID --ide2 $STORAGE_POOL:cloudinit
+qm set $VM_ID --boot order=scsi0
+qm set $VM_ID --serial0 socket --vga serial0
+# qm resize $VM_ID scsi0 +20G
+
+# Convert VM to Template
+qm template $VM_ID
+
+# Clean Up
+rm jammy-server-cloudimg-amd64.img
+

Step 2: Deploying VMs from the Template

+

With your template in place, you can create linked clones quickly. These clones are lightweight and share the base image with the template, which means rapid deployment. Before starting the new VM, configure the network and SSH keys through the Proxmox interface.

+

Step 3: Customizing with Cloud-Init

+

When you start a VM from the template, Cloud-Init kicks in. It reads the configuration data from an ISO image attached to the VM as a CD-ROM. This data includes network settings, user accounts, and SSH keys. Proxmox automatically generates this ISO image, and Cloud-Init applies the settings on the first boot.

+

We go through steps 2 and 3 via Terraform. This significantly speeds up the process when you need to change some template parameters and create several identical machines at the same time.

+
+

[Best Practices:]

+
+

• SSH Key Authentication: It's recommended to use SSH keys for authentication rather than passwords for security reasons. Proxmox can store encrypted passwords, but keys are a safer alternative.
+
+• Serial Console: Many Cloud-Init images rely on a serial console, which is a requirement for OpenStack. Ensure that your template is configured to use a serial console as the display.
+
+• Custom Configuration: While many distributions offer ready-to-use Cloud-Init images, creating your own ensures that you know exactly what's installed, making it easier to customize later.

+
+

Conclusion

+

Proxmox VM templates combined with Cloud-Init provide a powerful, efficient, and automated way to manage VM deployments. This synergy not only saves time but also ensures that each VM is configured consistently according to your standards.

+

If you want to learn more, I suggest you start by exploring the official Proxmox documentation and community forums for detailed guides and support

+

Happy virtualizing!

Read more on

#devops
#cloud-init
#proxmox
#VM
#virtualization

Share this post

like

Congratulations! Now you can show off with your new knowledge!

If you want us to uncover some other Well unknown facts, you can contact us via the socials or e-mail below. See you!

+ + \ No newline at end of file diff --git a/blog/e173a2ae-ebb5-5219-9479-035dde5fe8c8/index.html b/blog/e173a2ae-ebb5-5219-9479-035dde5fe8c8/index.html new file mode 100644 index 00000000..fa098148 --- /dev/null +++ b/blog/e173a2ae-ebb5-5219-9479-035dde5fe8c8/index.html @@ -0,0 +1,329 @@ +CodeCave Blog | SELF-HOSTED BUILD AGENT FOR AZURE PIPELINES
Reading time: 3m.

Self-Hosted build Agent for Azure Pipelines

Self-Hosted build Agent for Azure Pipelines

+

Welcome to our guide to installing the Azure Agent +In this post, we'll cover the installation process, whether you're setting up a self-hosted agent for Azure Pipelines.

+

+ + + Self-Hosted build Agent for Azure Pipelines + +

+

What is Azure DevOps?

+

Azure DevOps is an integrated service provided by Azure. As a SaaS offering, it lacks a pre-installed host, or more precisely, an agent to carry out its operations. Consequently, to utilize our Azure DevOps Pipeline effectively, we must ensure an agent is set up within our Agent Pool. In this blog, we will learn how to configure an agent and later on how to create a service for our host.

+

What is an Azure Agent?

+

Azure Agent is software that allows you to build code or deploy software using Azure Pipelines. It serves as a bridge between your infrastructure and Azure services, ensuring a seamless automation process.

+

There are two main types of agents:

+

Microsoft Managed Agents: These are managed by Microsoft and require no configuration on your part.

+

Self-hosted agents: These are configured and managed on your own infrastructure, giving you more control over your build environment. After you've installed the agent on your machine, you can install any other software on that machine as required by your build or deployment jobs.

+

Configuring a self-hosted Agent might seem complicated but by following the below steps we can easily configure an agent in our Agent Pool.

+

So, let's move step by step

+

Step 1: Creating Agent Pool

+

• Sign in to Microsoft Azure

+

• Log in to your development project in DevOps (https://dev.azure.com/<your project name>).

+

• Go to Project Settings -> Pipelines -> Agent Pools and click New Agent Pool.

+

• Choose self-hosted Agent

+

• Enter the agent name and click Create

+

+ + + Self-Hosted build Agent for Azure Pipelines + +

+

Step 2: Generate Personal Access Token (PAT)

+

You need to go to the Personal Access Tokens section under User Settings located in the top right corner of your screen. Name it accordingly and grant permissions as per your requirements.

+

+ + + Self-Hosted build Agent for Azure Pipelines + +

+

+ + + Self-Hosted build Agent for Azure Pipelines + +

+

If you have any questions, try following the instructions in this link - PAT key.

+

Step 3: Check prerequisites

+

Before you begin the installation process, please ensure that your system meets the requirements; links to official documentation are provided below.

+

Linux

+

Windows

+

MacOS

+

When it comes to safety, here are the basic principles:

+

• Secure agent folders as they contain sensitive information.

+

• Use the least required permissions for agent functionality.

+

Step 4: Get The Agent

+

Once the agent pool is created and PAT is generated, select the pool and click New Agent. In the new pop-up window, choose the operating system which you need and move forward accordingly.

+

+ + + Self-Hosted build Agent for Azure Pipelines + +

+

Step 5: Configure Agent

+

We'll look at the Linux configuration as a guide; with other operating systems the steps will be similar.

+

Once you've clicked "Download" or copied the URL, you'll need to log into your virtual machine.

+

Create an agent folder and navigate to it using the following command:

+
mkdir myagent && cd myagent
+

Download the agent using the following command in case of Linux:

+
wget https://vstsagentpackage.azureedge.net/agent/3.240.1/vsts-agent-linux-x64-3.240.1.tar.gz
+

Unzip the contents using the following command:

+
tar zxvf ./vsts-agent-linux-x64-3.240.1.tar.gz
+

After extracting the contents, configure the agent using the command:

+
./config.sh
+

+ + + Self-Hosted build Agent for Azure Pipelines + + +Provide the server URL: (https://dev.azure.com/<your project name>), PAT key and the agent pool name you created earlier, agent name and work folder.

+

Once the agent is configured, it will show as below under your agent pool in Azure DevOps with red mark - Offline.

+

You can run the agent interactively using this script:

+
./run.sh
+

it will bring your agent from Offline to Online.

+

Once ./run.sh ends, our agent will go offline again and will not be available for deployments until we run it again.

+

To eliminate unnecessary routine steps and have an agent that is always listening, we will configure it as a service.

+

We can create a service using this script in your agent folder:

+
./svc.sh install && ./svc.sh start
+

Or create a service configuration file

+
sudo nano /etc/systemd/system/agent.service
+

Paste the following content into the file:

+
[Unit]
+Description=Azure-devops-agent-ubuntu service
+
+[Service]
+User=<your username>
+ExecStart=/path/to/your/agent/run.sh
+Restart=always
+
+[Install]
+WantedBy=multi-user.target
+

Replace <your username> and /path/to/your/agent/run.sh with your details.

+

After saving the file, activate and start the service:

+
sudo systemctl daemon-reload
+sudo systemctl enable agent.service
+sudo systemctl start agent.service
+sudo systemctl status agent.service
+

The service for your Azure agent is now activated and will run continuously and will be available to take build tasks now!

+

Final Thoughts

+

Whether you are using Windows, Linux or MacOS, installing the Azure Agent is an important step in automating your build and deployment processes. By following detailed instructions for each operating system, you can ensure seamless and secure integration with Azure services.

+

We hope this detailed guide was helpful to you. If you have questions or need more help, please refer to the official Azure documentation.

Read more on

#devops
#azure
#self-hosted build agent

Share this post

like

Congratulations! Now you can show off with your new knowledge!

If you want us to uncover some other Well unknown facts, you can contact us via the socials or e-mail below. See you!

+ + \ No newline at end of file diff --git a/blog/f7437acb-56dc-5ec6-9370-7726f39da57a/index.html b/blog/f7437acb-56dc-5ec6-9370-7726f39da57a/index.html index b27e660d..3231e892 100644 --- a/blog/f7437acb-56dc-5ec6-9370-7726f39da57a/index.html +++ b/blog/f7437acb-56dc-5ec6-9370-7726f39da57a/index.html @@ -1,6 +1,6 @@ -
Reading time: 3m.

Awesome post 4

Part 1

+ }]);
Reading time: 3m.

Awesome post 4

Part 1

Part 2 - \ No newline at end of file + \ No newline at end of file diff --git a/blog/index.html b/blog/index.html index d91b4bec..e71dc63b 100644 --- a/blog/index.html +++ b/blog/index.html @@ -1,6 +1,6 @@ -

cover

12 Jun 2023

Awesome post 6

Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source....

Open article

Reading time: ~3 m.

11 Jun 2023

Awesome post 5

Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source....

Open article

Reading time: ~3 m.

10 Jun 2023

Awesome post 4

Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source....

Open article

Reading time: ~3 m.

08 Jun 2023

Awesome post 2

Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source....

Open article

Reading time: ~1 m.

07 Jun 2023

Awesome post 3

Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source....

Open article

Reading time: ~1 m.

+ }]);

cover

21 Jun 2024

Proxmox VM Templates and Cloud-Init

In the world of virtualization, efficiency and automation are key. That's where Proxmox Virtual Environment (VE) comes into play, offering a robust solution for managing virtual machines (VMs) with ease. One of the most powerful features of Proxmox is its ability to use VM templates in conjunction with Cloud-Init, streamlining the deployment process and making it as smooth as a cloud.......

Open article

Reading time: ~3 m.

20 Jun 2024

Self-Hosted build Agent for Azure Pipelines

Welcome to our guide to installing the Azure Agent In this post, we'll cover the installation process, whether you're setting up a self-hosted agent for Azure Pipelines...

Open article

Reading time: ~3 m.

20 Jun 2024

Streamlining Changelog Creation with Azure DevOps and Confluence

In the fast-paced world of software development, maintaining a detailed record of changes is crucial. Changelogs serve as a vital tool, tracking every update, fix, or feature added to a project. Integrating Azure DevOps with Confluence can create a seamless changelog management system that enhances transparency and efficiency. This blog post explores how to automate changelog creation in Confluence using a PowerShell script that extracts release information from an Azure...

Open article

Reading time: ~3 m.

12 Jun 2023

Awesome post 6

Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source....

Open article

Reading time: ~3 m.

11 Jun 2023

Awesome post 5

Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source....

Open article

Reading time: ~3 m.

- \ No newline at end of file + \ No newline at end of file diff --git a/blog/page/1/index.html b/blog/page/1/index.html index 0762079f..0a9b32eb 100644 --- a/blog/page/1/index.html +++ b/blog/page/1/index.html @@ -1,6 +1,6 @@ -

cover

12 Jun 2023

Awesome post 6

Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source....

Open article

Reading time: ~3 m.

11 Jun 2023

Awesome post 5

Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source....

Open article

Reading time: ~3 m.

10 Jun 2023

Awesome post 4

Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source....

Open article

Reading time: ~3 m.

08 Jun 2023

Awesome post 2

Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source....

Open article

Reading time: ~1 m.

07 Jun 2023

Awesome post 3

Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source....

Open article

Reading time: ~1 m.

+ }]);

cover

21 Jun 2024

Proxmox VM Templates and Cloud-Init

In the world of virtualization, efficiency and automation are key. That's where Proxmox Virtual Environment (VE) comes into play, offering a robust solution for managing virtual machines (VMs) with ease. One of the most powerful features of Proxmox is its ability to use VM templates in conjunction with Cloud-Init, streamlining the deployment process and making it as smooth as a cloud.......

Open article

Reading time: ~3 m.

20 Jun 2024

Self-Hosted build Agent for Azure Pipelines

Welcome to our guide to installing the Azure Agent In this post, we'll cover the installation process, whether you're setting up a self-hosted agent for Azure Pipelines...

Open article

Reading time: ~3 m.

20 Jun 2024

Streamlining Changelog Creation with Azure DevOps and Confluence

In the fast-paced world of software development, maintaining a detailed record of changes is crucial. Changelogs serve as a vital tool, tracking every update, fix, or feature added to a project. Integrating Azure DevOps with Confluence can create a seamless changelog management system that enhances transparency and efficiency. This blog post explores how to automate changelog creation in Confluence using a PowerShell script that extracts release information from an Azure...

Open article

Reading time: ~3 m.

12 Jun 2023

Awesome post 6

Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source....

Open article

Reading time: ~3 m.

11 Jun 2023

Awesome post 5

Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source....

Open article

Reading time: ~3 m.

- \ No newline at end of file + \ No newline at end of file diff --git a/blog/page/2/index.html b/blog/page/2/index.html index b8da2200..508acd63 100644 --- a/blog/page/2/index.html +++ b/blog/page/2/index.html @@ -1,6 +1,6 @@ -

cover
+ }]);

cover

10 Jun 2023

Awesome post 4

Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source....

Open article

Reading time: ~3 m.

08 Jun 2023

Awesome post 2

Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source....

Open article

Reading time: ~1 m.

07 Jun 2023

Awesome post 3

Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source....

Open article

Reading time: ~1 m.

05 Jun 2023

Awesome post 1

Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source....

Open article

Reading time: ~3 m.

- \ No newline at end of file + \ No newline at end of file diff --git a/chunk-map.json b/chunk-map.json index 96b87b31..c68c57bd 100644 --- a/chunk-map.json +++ b/chunk-map.json @@ -1 +1 @@ -{"app":["/app-fb4af62ff471c4bd5365.js"],"component---src-pages-404-tsx":["/component---src-pages-404-tsx-8854ec07bcd813a2d5d9.js"],"component---src-pages-templates-blog-tsx":["/component---src-pages-templates-blog-tsx-e632eeb611475b6922a9.js"],"component---src-pages-templates-index-tsx":["/component---src-pages-templates-index-tsx-9eb91922ad7dfced24d1.js"],"component---src-pages-templates-policies-tsx":["/component---src-pages-templates-policies-tsx-15f53bf827c36e52ae75.js"],"component---src-pages-templates-post-tsx":["/component---src-pages-templates-post-tsx-e7fee33879d8795210bf.js"],"component---src-pages-templates-project-tsx":["/component---src-pages-templates-project-tsx-9b1b9adbc9274b4f8970.js"],"component---src-pages-templates-projects-tsx":["/component---src-pages-templates-projects-tsx-55b0a27fe736ce512ff7.js"],"component---src-pages-templates-services-tsx":["/component---src-pages-templates-services-tsx-5c395c45f908b7df0b61.js"],"component---src-pages-templates-workflow-tsx":["/component---src-pages-templates-workflow-tsx-5b55b4b34202d84e478f.js"]} \ No newline at end of file +{"app":["/app-fb4af62ff471c4bd5365.js"],"component---src-pages-404-tsx":["/component---src-pages-404-tsx-8854ec07bcd813a2d5d9.js"],"component---src-pages-templates-blog-tsx":["/component---src-pages-templates-blog-tsx-e632eeb611475b6922a9.js"],"component---src-pages-templates-index-tsx":["/component---src-pages-templates-index-tsx-9eb91922ad7dfced24d1.js"],"component---src-pages-templates-policies-tsx":["/component---src-pages-templates-policies-tsx-15f53bf827c36e52ae75.js"],"component---src-pages-templates-post-tsx":["/component---src-pages-templates-post-tsx-f7d7682c4496902d891d.js"],"component---src-pages-templates-project-tsx":["/component---src-pages-templates-project-tsx-9b1b9adbc9274b4f8970.js"],"component---src-pages-templates-projects-tsx":["/component---src-pages-templates-projects-tsx-55b0a27fe736ce512ff7.js"],"component---src-pages-templates-services-tsx":["/component---src-pages-templates-services-tsx-5c395c45f908b7df0b61.js"],"component---src-pages-templates-workflow-tsx":["/component---src-pages-templates-workflow-tsx-5b55b4b34202d84e478f.js"]} \ No newline at end of file diff --git a/component---src-pages-templates-post-tsx-e7fee33879d8795210bf.js b/component---src-pages-templates-post-tsx-f7d7682c4496902d891d.js similarity index 69% rename from component---src-pages-templates-post-tsx-e7fee33879d8795210bf.js rename to component---src-pages-templates-post-tsx-f7d7682c4496902d891d.js index 627f3655..9bb49952 100644 --- a/component---src-pages-templates-post-tsx-e7fee33879d8795210bf.js +++ b/component---src-pages-templates-post-tsx-f7d7682c4496902d891d.js @@ -1,2 +1,2 @@ -(self.webpackChunkcode_cave=self.webpackChunkcode_cave||[]).push([[354],{1237:function(e,t,a){var l=a(9720).w_;e.exports.A=function(e){return l({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M504 256C504 119 393 8 256 8S8 119 8 256c0 123.78 90.69 226.38 209.25 245V327.69h-63V256h63v-54.64c0-62.15 37-96.48 93.67-96.48 27.14 0 55.52 4.84 55.52 4.84v61h-31.28c-30.8 0-40.41 19.12-40.41 38.73V256h68.78l-11 71.69h-57.78V501C413.31 482.38 504 379.78 504 256z"}}]})(e)}},2651:function(e,t,a){var l=a(9720).w_;e.exports.l=function(e){return l({tag:"svg",attr:{viewBox:"0 0 488 512"},child:[{tag:"path",attr:{d:"M488 261.8C488 403.3 391.1 504 248 504 110.8 504 0 393.2 0 256S110.8 8 248 8c66.8 0 123 24.5 166.3 64.9l-67.5 64.9C258.5 52.6 94.3 116.6 94.3 256c0 86.5 69.1 156.6 153.7 156.6 98.2 0 135-70.4 140.8-106.9H248v-85.3h236.1c2.3 12.7 3.9 24.9 3.9 41.4z"}}]})(e)}},1112:function(e,t,a){var l=a(9720).w_;e.exports.o=function(e){return l({tag:"svg",attr:{viewBox:"0 0 496 512"},child:[{tag:"path",attr:{d:"M496 256c0 137-111 248-248 248-25.6 0-50.2-3.9-73.4-11.1 10.1-16.5 25.2-43.5 30.8-65 3-11.6 15.4-59 15.4-59 8.1 15.4 31.7 28.5 56.8 28.5 74.8 0 128.7-68.8 128.7-154.3 0-81.9-66.9-143.2-152.9-143.2-107 0-163.9 71.8-163.9 150.1 0 36.4 19.4 81.7 50.3 96.1 4.7 2.2 7.2 1.2 8.3-3.3.8-3.4 5-20.3 6.9-28.1.6-2.5.3-4.7-1.7-7.1-10.1-12.5-18.3-35.3-18.3-56.6 0-54.7 41.4-107.6 112-107.6 60.9 0 103.6 41.5 103.6 100.9 0 67.1-33.9 113.6-78 113.6-24.3 0-42.6-20.1-36.7-44.8 7-29.5 20.5-61.3 20.5-82.6 0-19-10.2-34.9-31.4-34.9-24.9 0-44.9 25.7-44.9 60.2 0 22 7.4 36.8 7.4 36.8s-24.5 103.8-29 123.2c-5 21.4-3 51.6-.9 71.2C65.4 450.9 0 361.1 0 256 0 119 111 8 248 8s248 111 248 248z"}}]})(e)}},1532:function(e,t,a){"use strict";a.r(t),a.d(t,{Head:function(){return b},default:function(){return v}});var l=a(7294),r=a(7896),n=a(9165),s=a(1164),c=a(4528),m=a.n(c),i=a(1112),o=a(5337),p=a(2651),d=a(1237);const u=e=>{let{url:t,media:a,children:r}=e;return l.createElement("a",{href:t,target:"_blank",title:`Share on ${a}`},r)};var h=e=>{let{url:t,postTitle:a,shareTitle:r}=e;return l.createElement("div",{className:"sm:basis-52 sm:shrink-0"},l.createElement("p",{className:"text-lg font-bold mb-5"},r),l.createElement("div",{className:"flex w-full items-center justify-evenly sm:justify-between py-2.5"},l.createElement(u,{media:"Twitter",url:`http://twitter.com/share?text=${a}&url=${t}`},l.createElement(m(),null)),l.createElement(u,{media:"Pinterest",url:`http://pinterest.com/pin/create/button/?url=${t}&description=${a}`},l.createElement(i.o,{size:"20px"})),l.createElement(u,{media:"Linkedin",url:`http://www.linkedin.com/shareArticle?mini=true&url=${t}&title=${a}&source=CodeCave`},l.createElement(o.l,{size:"20px"})),l.createElement(u,{media:"Google+",url:`https://plus.google.com/share?url=${t}`},l.createElement(p.l,{size:"20px"})),l.createElement(u,{media:"Facebook",url:`https://www.facebook.com/sharer/sharer.php?u=${t}&p[title]=${a}`},l.createElement(d.A,{size:"20px"}))))},f=a(4160),x=a(8032);var E=e=>{let{title:t,text:a}=e;const r=(0,f.K2)(g),n=(0,x.c)(null==r?void 0:r.file);return l.createElement("div",{className:"flex flex-col sm:flex-row items-center w-full sm:px-12 mb-8 gap-5 justify-center"},n?l.createElement(x.G,{image:n,alt:"like",className:"object-contain aspect-square h-40"}):null,l.createElement("div",{className:"flex-1"},l.createElement("p",{className:"text-lg font-bold mb-5"},t),l.createElement("p",{className:"text-base"},a)))};const g="639074693";var w=e=>{let{keywords:t,readMoreTitle:a}=e;return l.createElement("div",{className:"w-full"},l.createElement("p",{className:"text-lg font-bold mb-5"},a),l.createElement("div",{className:"flex flex-wrap gap-2"},t.map((e=>l.createElement("div",{key:e,className:"text-sm text-secondary-10 border border-solid border-secondary-10 rounded-full px-5 py-2.5"},"#",l.createElement("span",{itemProp:"keywords"},e))))))};var v=e=>{let{data:{markdownRemark:{frontmatter:t,html:a,wordCount:{words:c}}},pageContext:{markupData:m,lang:i}}=e;const{href:o}=(0,r.useLocation)(),{date:p,title:d,keywords:u,author:f,authorPosition:g,authorPhoto:v}=t,b=(0,x.c)(v),k=Math.floor(c/200),y=k||1;return l.createElement(l.Fragment,null,l.createElement("div",{itemScope:!0,itemType:"https://schema.org/Article",className:"flex bg-main-100"},l.createElement(s.Z,{maxWidthClass:"max-w-2xl",className:"flex-col text-secondary-100 text-lg md:!px-0 pt-8 sm:pt-16"},l.createElement("div",{itemProp:"author",itemScope:!0,itemType:"https://schema.org/Person",className:"flex items-center gap-4 mb-8 sm:mb-12"},b?l.createElement(x.G,{image:b,alt:"avatar",itemProp:"image",className:"object-contain aspect-square rounded-full w-16"}):null,l.createElement("div",{className:"flex-1 w-max"},l.createElement("p",{itemProp:"name",className:"font-semibold whitespace-nowrap"},f),l.createElement("p",{itemProp:"jobTitle",className:"text-secondary-30"},g))),l.createElement("div",{className:"w-full flex items-center justify-between mb-2.5 sm:mb-5 text-sm sm:text-base"},l.createElement("span",{itemProp:"datePublished"},p),l.createElement("span",null,m.readingTimeTitle,": ",y,null==m?void 0:m.readingTimeUnits,".")),l.createElement("h2",{className:"text-[24px] sm:text-4xl font-semibold mb-8",itemProp:"headline"},d),l.createElement("div",{className:"single-post",dangerouslySetInnerHTML:{__html:a},itemProp:"articleBody"}),l.createElement("div",{className:"flex flex-col sm:flex-row w-full gap-8 lg:gap-16 mb-8 md:mb-12"},u?l.createElement(w,{keywords:u,readMoreTitle:m.readMoreOnTopicTitle}):null,l.createElement(h,{url:o,postTitle:d,shareTitle:m.sharePostTitle})),l.createElement(E,{title:m.postFooterTitle,text:m.postFooterText})),l.createElement(n.Lx,{itemProp:"copyrightHolder",lang:i})))};const b=e=>{let{data:{markdownRemark:{frontmatter:{title:t}}},pageContext:a,location:r}=e;return l.createElement(n.Ag,{title:`${a.markupData.head} | ${t.toUpperCase()}`,siteUrl:a.site.siteUrl,path:r.pathname,lang:a.lang})}},4528:function(e,t,a){var l=a(7294);function r(e){return l.createElement("svg",e,[l.createElement("g",{clipPath:"url(#clip0_1390_2975)",key:0},l.createElement("path",{d:"M15.7511 0H18.8178L12.1179 8.47193L20 20H13.8282L8.99457 13.0081L3.46363 20H0.394883L7.56109 10.9385L0 0H6.32809L10.6975 6.39068L15.7511 0ZM14.6747 17.9691H16.3741L5.40481 1.92425H3.58137L14.6747 17.9691Z",fill:"#E4E4E4"})),l.createElement("defs",{key:1},l.createElement("clipPath",{id:"clip0_1390_2975"},l.createElement("rect",{width:"20",height:"20",fill:"white"})))])}r.defaultProps={width:"20",height:"20",viewBox:"0 0 20 20",fill:"none"},e.exports=r,r.default=r}}]); -//# sourceMappingURL=component---src-pages-templates-post-tsx-e7fee33879d8795210bf.js.map \ No newline at end of file +(self.webpackChunkcode_cave=self.webpackChunkcode_cave||[]).push([[354],{1237:function(e,t,a){var l=a(9720).w_;e.exports.A=function(e){return l({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M504 256C504 119 393 8 256 8S8 119 8 256c0 123.78 90.69 226.38 209.25 245V327.69h-63V256h63v-54.64c0-62.15 37-96.48 93.67-96.48 27.14 0 55.52 4.84 55.52 4.84v61h-31.28c-30.8 0-40.41 19.12-40.41 38.73V256h68.78l-11 71.69h-57.78V501C413.31 482.38 504 379.78 504 256z"}}]})(e)}},2651:function(e,t,a){var l=a(9720).w_;e.exports.l=function(e){return l({tag:"svg",attr:{viewBox:"0 0 488 512"},child:[{tag:"path",attr:{d:"M488 261.8C488 403.3 391.1 504 248 504 110.8 504 0 393.2 0 256S110.8 8 248 8c66.8 0 123 24.5 166.3 64.9l-67.5 64.9C258.5 52.6 94.3 116.6 94.3 256c0 86.5 69.1 156.6 153.7 156.6 98.2 0 135-70.4 140.8-106.9H248v-85.3h236.1c2.3 12.7 3.9 24.9 3.9 41.4z"}}]})(e)}},1112:function(e,t,a){var l=a(9720).w_;e.exports.o=function(e){return l({tag:"svg",attr:{viewBox:"0 0 496 512"},child:[{tag:"path",attr:{d:"M496 256c0 137-111 248-248 248-25.6 0-50.2-3.9-73.4-11.1 10.1-16.5 25.2-43.5 30.8-65 3-11.6 15.4-59 15.4-59 8.1 15.4 31.7 28.5 56.8 28.5 74.8 0 128.7-68.8 128.7-154.3 0-81.9-66.9-143.2-152.9-143.2-107 0-163.9 71.8-163.9 150.1 0 36.4 19.4 81.7 50.3 96.1 4.7 2.2 7.2 1.2 8.3-3.3.8-3.4 5-20.3 6.9-28.1.6-2.5.3-4.7-1.7-7.1-10.1-12.5-18.3-35.3-18.3-56.6 0-54.7 41.4-107.6 112-107.6 60.9 0 103.6 41.5 103.6 100.9 0 67.1-33.9 113.6-78 113.6-24.3 0-42.6-20.1-36.7-44.8 7-29.5 20.5-61.3 20.5-82.6 0-19-10.2-34.9-31.4-34.9-24.9 0-44.9 25.7-44.9 60.2 0 22 7.4 36.8 7.4 36.8s-24.5 103.8-29 123.2c-5 21.4-3 51.6-.9 71.2C65.4 450.9 0 361.1 0 256 0 119 111 8 248 8s248 111 248 248z"}}]})(e)}},1532:function(e,t,a){"use strict";a.r(t),a.d(t,{Head:function(){return b},default:function(){return v}});var l=a(7294),r=a(7896),n=a(9165),s=a(1164),c=a(4528),m=a.n(c),i=a(1112),o=a(5337),p=a(2651),d=a(1237);const u=e=>{let{url:t,media:a,children:r}=e;return l.createElement("a",{href:t,target:"_blank",title:`Share on ${a}`},r)};var h=e=>{let{url:t,postTitle:a,shareTitle:r}=e;return l.createElement("div",{className:"sm:basis-52 sm:shrink-0"},l.createElement("p",{className:"text-lg font-bold mb-5"},r),l.createElement("div",{className:"flex w-full items-center justify-evenly sm:justify-between py-2.5"},l.createElement(u,{media:"Twitter",url:`http://twitter.com/share?text=${a}&url=${t}`},l.createElement(m(),null)),l.createElement(u,{media:"Pinterest",url:`http://pinterest.com/pin/create/button/?url=${t}&description=${a}`},l.createElement(i.o,{size:"20px"})),l.createElement(u,{media:"Linkedin",url:`http://www.linkedin.com/shareArticle?mini=true&url=${t}&title=${a}&source=CodeCave`},l.createElement(o.l,{size:"20px"})),l.createElement(u,{media:"Google+",url:`https://plus.google.com/share?url=${t}`},l.createElement(p.l,{size:"20px"})),l.createElement(u,{media:"Facebook",url:`https://www.facebook.com/sharer/sharer.php?u=${t}&p[title]=${a}`},l.createElement(d.A,{size:"20px"}))))},f=a(4160),x=a(8032);var E=e=>{let{title:t,text:a}=e;const r=(0,f.K2)(g),n=(0,x.c)(null==r?void 0:r.file);return l.createElement("div",{className:"flex flex-col sm:flex-row items-center w-full sm:px-12 mb-8 gap-5 justify-center"},n?l.createElement(x.G,{image:n,alt:"like",className:"object-contain aspect-square h-40"}):null,l.createElement("div",{className:"flex-1"},l.createElement("p",{className:"text-lg font-bold mb-5"},t),l.createElement("p",{className:"text-base"},a)))};const g="639074693";var w=e=>{let{keywords:t,readMoreTitle:a}=e;return l.createElement("div",{className:"w-full"},l.createElement("p",{className:"text-lg font-bold mb-5"},a),l.createElement("div",{className:"flex flex-wrap gap-2"},t.map((e=>l.createElement("div",{key:e,className:"text-sm text-secondary-10 border border-solid border-secondary-10 rounded-full px-5 py-2.5"},"#",l.createElement("span",{itemProp:"keywords"},e))))))};var v=e=>{let{data:{markdownRemark:{frontmatter:t,html:a,wordCount:{words:c}}},pageContext:{markupData:m,lang:i}}=e;const{href:o}=(0,r.useLocation)(),{date:p,title:d,keywords:u,author:f,authorPosition:g,authorPhoto:v}=t,b=(0,x.c)(v),k=Math.floor(c/200),y=k||1;return l.createElement(l.Fragment,null,l.createElement("div",{itemScope:!0,itemType:"https://schema.org/Article",className:"flex bg-main-100"},l.createElement(s.Z,{maxWidthClass:"max-w-2xl",className:"flex-col text-secondary-100 text-lg md:!px-0 pt-8 sm:pt-16"},l.createElement("div",{itemProp:"author",itemScope:!0,itemType:"https://schema.org/Person",className:"flex items-center gap-4 mb-8 sm:mb-12"},b?l.createElement(x.G,{image:b,alt:"avatar",itemProp:"image",className:"object-contain aspect-square rounded-full w-16 grayscale"}):null,l.createElement("div",{className:"flex-1 w-max"},l.createElement("p",{itemProp:"name",className:"font-semibold whitespace-nowrap"},f),l.createElement("p",{itemProp:"jobTitle",className:"text-secondary-30"},g))),l.createElement("div",{className:"w-full flex items-center justify-between mb-2.5 sm:mb-5 text-sm sm:text-base"},l.createElement("span",{itemProp:"datePublished"},p),l.createElement("span",null,m.readingTimeTitle,": ",y,null==m?void 0:m.readingTimeUnits,".")),l.createElement("h2",{className:"text-[24px] sm:text-4xl font-semibold mb-8",itemProp:"headline"},d),l.createElement("div",{className:"single-post",dangerouslySetInnerHTML:{__html:a},itemProp:"articleBody"}),l.createElement("div",{className:"flex flex-col sm:flex-row w-full gap-8 lg:gap-16 mb-8 md:mb-12"},u?l.createElement(w,{keywords:u,readMoreTitle:m.readMoreOnTopicTitle}):null,l.createElement(h,{url:o,postTitle:d,shareTitle:m.sharePostTitle})),l.createElement(E,{title:m.postFooterTitle,text:m.postFooterText})),l.createElement(n.Lx,{itemProp:"copyrightHolder",lang:i})))};const b=e=>{let{data:{markdownRemark:{frontmatter:{title:t}}},pageContext:a,location:r}=e;return l.createElement(n.Ag,{title:`${a.markupData.head} | ${t.toUpperCase()}`,siteUrl:a.site.siteUrl,path:r.pathname,lang:a.lang})}},4528:function(e,t,a){var l=a(7294);function r(e){return l.createElement("svg",e,[l.createElement("g",{clipPath:"url(#clip0_1390_2975)",key:0},l.createElement("path",{d:"M15.7511 0H18.8178L12.1179 8.47193L20 20H13.8282L8.99457 13.0081L3.46363 20H0.394883L7.56109 10.9385L0 0H6.32809L10.6975 6.39068L15.7511 0ZM14.6747 17.9691H16.3741L5.40481 1.92425H3.58137L14.6747 17.9691Z",fill:"#E4E4E4"})),l.createElement("defs",{key:1},l.createElement("clipPath",{id:"clip0_1390_2975"},l.createElement("rect",{width:"20",height:"20",fill:"white"})))])}r.defaultProps={width:"20",height:"20",viewBox:"0 0 20 20",fill:"none"},e.exports=r,r.default=r}}]); +//# sourceMappingURL=component---src-pages-templates-post-tsx-f7d7682c4496902d891d.js.map \ No newline at end of file diff --git a/component---src-pages-templates-post-tsx-e7fee33879d8795210bf.js.map b/component---src-pages-templates-post-tsx-f7d7682c4496902d891d.js.map similarity index 67% rename from component---src-pages-templates-post-tsx-e7fee33879d8795210bf.js.map rename to component---src-pages-templates-post-tsx-f7d7682c4496902d891d.js.map index 087d6d11..75be552d 100644 --- a/component---src-pages-templates-post-tsx-e7fee33879d8795210bf.js.map +++ b/component---src-pages-templates-post-tsx-f7d7682c4496902d891d.js.map @@ -1 +1 @@ -{"version":3,"file":"component---src-pages-templates-post-tsx-e7fee33879d8795210bf.js","mappings":"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","sources":["webpack://code-cave/./node_modules/@react-icons/all-files/fa/FaFacebook.js","webpack://code-cave/./node_modules/@react-icons/all-files/fa/FaGoogle.js","webpack://code-cave/./node_modules/@react-icons/all-files/fa/FaPinterest.js","webpack://code-cave/./src/components/posts/shareButtons.tsx","webpack://code-cave/./src/components/posts/postFooter.tsx","webpack://code-cave/./src/components/posts/postHashtags.tsx","webpack://code-cave/./src/pagesTemplates/post.tsx","webpack://code-cave/./src/assets/posts/X.svg"],"sourcesContent":["// THIS FILE IS AUTO GENERATED\nvar GenIcon = require('../lib').GenIcon\nmodule.exports.FaFacebook = function FaFacebook (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M504 256C504 119 393 8 256 8S8 119 8 256c0 123.78 90.69 226.38 209.25 245V327.69h-63V256h63v-54.64c0-62.15 37-96.48 93.67-96.48 27.14 0 55.52 4.84 55.52 4.84v61h-31.28c-30.8 0-40.41 19.12-40.41 38.73V256h68.78l-11 71.69h-57.78V501C413.31 482.38 504 379.78 504 256z\"}}]})(props);\n};\n","// THIS FILE IS AUTO GENERATED\nvar GenIcon = require('../lib').GenIcon\nmodule.exports.FaGoogle = function FaGoogle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 488 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M488 261.8C488 403.3 391.1 504 248 504 110.8 504 0 393.2 0 256S110.8 8 248 8c66.8 0 123 24.5 166.3 64.9l-67.5 64.9C258.5 52.6 94.3 116.6 94.3 256c0 86.5 69.1 156.6 153.7 156.6 98.2 0 135-70.4 140.8-106.9H248v-85.3h236.1c2.3 12.7 3.9 24.9 3.9 41.4z\"}}]})(props);\n};\n","// THIS FILE IS AUTO GENERATED\nvar GenIcon = require('../lib').GenIcon\nmodule.exports.FaPinterest = function FaPinterest (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M496 256c0 137-111 248-248 248-25.6 0-50.2-3.9-73.4-11.1 10.1-16.5 25.2-43.5 30.8-65 3-11.6 15.4-59 15.4-59 8.1 15.4 31.7 28.5 56.8 28.5 74.8 0 128.7-68.8 128.7-154.3 0-81.9-66.9-143.2-152.9-143.2-107 0-163.9 71.8-163.9 150.1 0 36.4 19.4 81.7 50.3 96.1 4.7 2.2 7.2 1.2 8.3-3.3.8-3.4 5-20.3 6.9-28.1.6-2.5.3-4.7-1.7-7.1-10.1-12.5-18.3-35.3-18.3-56.6 0-54.7 41.4-107.6 112-107.6 60.9 0 103.6 41.5 103.6 100.9 0 67.1-33.9 113.6-78 113.6-24.3 0-42.6-20.1-36.7-44.8 7-29.5 20.5-61.3 20.5-82.6 0-19-10.2-34.9-31.4-34.9-24.9 0-44.9 25.7-44.9 60.2 0 22 7.4 36.8 7.4 36.8s-24.5 103.8-29 123.2c-5 21.4-3 51.6-.9 71.2C65.4 450.9 0 361.1 0 256 0 119 111 8 248 8s248 111 248 248z\"}}]})(props);\n};\n","import React from \"react\";\n\nimport X from \"../../assets/posts/X.svg\";\nimport { FaPinterest } from \"@react-icons/all-files/fa/FaPinterest\";\nimport { FaLinkedin } from \"@react-icons/all-files/fa/FaLinkedin\";\nimport { FaGoogle } from \"@react-icons/all-files/fa/FaGoogle\";\nimport { FaFacebook } from \"@react-icons/all-files/fa/FaFacebook\";\n\nconst ShareButtons = ({\n url,\n postTitle,\n shareTitle,\n}: {\n url: string;\n postTitle: string;\n shareTitle: string;\n}) => {\n return (\n
\n

{shareTitle}

\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n );\n};\n\nexport const ShareButton = ({\n url,\n media,\n children,\n}: React.PropsWithChildren<{ url: string; media: string }>) => {\n return (\n \n {children}\n \n );\n};\n\nexport default ShareButtons;\n","import React from \"react\";\nimport { graphql, useStaticQuery } from \"gatsby\";\nimport { GatsbyImage, ImageDataLike, getImage } from \"gatsby-plugin-image\";\n\nconst PostFooter = ({ title, text }: { title: string; text: string }) => {\n const fileData = useStaticQuery(query) as { file: ImageDataLike | null };\n const image = getImage(fileData?.file);\n\n return (\n
\n {image ? (\n \n ) : null}\n
\n

{title}

\n

{text}

\n
\n
\n );\n};\n\nexport default PostFooter;\n\nexport const query = graphql`\n query {\n file(name: { eq: \"postFooterImage\" }) {\n childImageSharp {\n gatsbyImageData(\n formats: [AUTO, WEBP, AVIF]\n placeholder: BLURRED\n width: 160\n )\n }\n }\n }\n`;\n","import React from \"react\";\n\nconst PostHashtags = ({\n keywords,\n readMoreTitle,\n}: {\n keywords: string[];\n readMoreTitle: string;\n}) => {\n return (\n
\n

{readMoreTitle}

\n
\n {keywords.map((hashtag) => (\n \n #{hashtag}\n
\n ))}\n
\n
\n );\n};\n\nexport default PostHashtags;\n","import React from \"react\";\nimport { HeadFC, PageProps, graphql } from \"gatsby\";\nimport { useLocation } from \"@reach/router\";\n\nimport { IPostPageContext, IPostQueryResult } from \"../types/post.type\";\n\nimport { HeadSeo, LocalBusinessMetadata } from \"../components/common/metadata\";\nimport ContentContainer from \"../components/common/contentContainer\";\nimport ShareButtons from \"../components/posts/shareButtons\";\nimport PostFooter from \"../components/posts/postFooter\";\nimport { GatsbyImage, getImage } from \"gatsby-plugin-image\";\nimport PostHashtags from \"../components/posts/postHashtags\";\n\nconst Post = ({\n data: {\n markdownRemark: {\n frontmatter,\n html,\n wordCount: { words },\n },\n },\n pageContext: { markupData, lang },\n}: PageProps) => {\n const { href: currentUrl } = useLocation();\n\n const { date, title, keywords, author, authorPosition, authorPhoto } =\n frontmatter;\n\n const avatar = getImage(authorPhoto);\n\n const minutes = Math.floor(words / 200);\n const readingTime = minutes ? minutes : 1;\n\n return (\n <>\n \n \n \n {avatar ? (\n \n ) : null}\n
\n

\n {author}\n

\n

\n {authorPosition}\n

\n
\n
\n\n
\n {date}\n\n \n {markupData.readingTimeTitle}: {readingTime}\n {markupData?.readingTimeUnits}.\n \n
\n\n \n {title}\n \n\n \n\n
\n {keywords ? (\n \n ) : null}\n\n \n
\n\n \n {/*
\n {keywords ? (\n
\n {keywords.map((hashtag) => (\n \n #{hashtag.toLowerCase()}\n
\n ))}\n
\n ) : null}\n
\n \n
\n
*/}\n \n \n
\n \n );\n};\n\nexport default Post;\n\nexport const Head: HeadFC = ({\n data: {\n markdownRemark: {\n frontmatter: { title },\n },\n },\n pageContext,\n location,\n}) => (\n \n);\n\nexport const query = graphql`\n query ($id: String, $lang: String) {\n markdownRemark(id: { eq: $id }) {\n frontmatter {\n date(formatString: \"DD MMM YYYY\", locale: $lang)\n title\n keywords\n author\n authorPosition\n authorPhoto {\n childImageSharp {\n gatsbyImageData(\n width: 64\n formats: [AUTO, WEBP, AVIF]\n placeholder: BLURRED\n )\n }\n }\n }\n html\n wordCount {\n words\n }\n }\n }\n`;\n","var React = require('react');\n\nfunction X (props) {\n return React.createElement(\"svg\",props,[React.createElement(\"g\",{\"clipPath\":\"url(#clip0_1390_2975)\",\"key\":0},React.createElement(\"path\",{\"d\":\"M15.7511 0H18.8178L12.1179 8.47193L20 20H13.8282L8.99457 13.0081L3.46363 20H0.394883L7.56109 10.9385L0 0H6.32809L10.6975 6.39068L15.7511 0ZM14.6747 17.9691H16.3741L5.40481 1.92425H3.58137L14.6747 17.9691Z\",\"fill\":\"#E4E4E4\"})),React.createElement(\"defs\",{\"key\":1},React.createElement(\"clipPath\",{\"id\":\"clip0_1390_2975\"},React.createElement(\"rect\",{\"width\":\"20\",\"height\":\"20\",\"fill\":\"white\"})))]);\n}\n\nX.defaultProps = {\"width\":\"20\",\"height\":\"20\",\"viewBox\":\"0 0 20 20\",\"fill\":\"none\"};\n\nmodule.exports = X;\n\nX.default = X;\n"],"names":["GenIcon","module","exports","props","ShareButton","_ref2","url","media","children","React","href","target","title","_ref","postTitle","shareTitle","className","X","FaPinterest","size","FaLinkedin","FaGoogle","FaFacebook","text","fileData","useStaticQuery","query","image","getImage","file","GatsbyImage","alt","keywords","readMoreTitle","map","hashtag","key","itemProp","data","markdownRemark","frontmatter","html","wordCount","words","pageContext","markupData","lang","currentUrl","useLocation","date","author","authorPosition","authorPhoto","avatar","minutes","Math","floor","readingTime","itemScope","itemType","ContentContainer","maxWidthClass","readingTimeTitle","readingTimeUnits","dangerouslySetInnerHTML","__html","PostHashtags","readMoreOnTopicTitle","ShareButtons","sharePostTitle","PostFooter","postFooterTitle","postFooterText","LocalBusinessMetadata","Head","location","HeadSeo","head","toUpperCase","siteUrl","site","path","pathname","createElement","defaultProps","default"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"component---src-pages-templates-post-tsx-f7d7682c4496902d891d.js","mappings":"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","sources":["webpack://code-cave/./node_modules/@react-icons/all-files/fa/FaFacebook.js","webpack://code-cave/./node_modules/@react-icons/all-files/fa/FaGoogle.js","webpack://code-cave/./node_modules/@react-icons/all-files/fa/FaPinterest.js","webpack://code-cave/./src/components/posts/shareButtons.tsx","webpack://code-cave/./src/components/posts/postFooter.tsx","webpack://code-cave/./src/components/posts/postHashtags.tsx","webpack://code-cave/./src/pagesTemplates/post.tsx","webpack://code-cave/./src/assets/posts/X.svg"],"sourcesContent":["// THIS FILE IS AUTO GENERATED\nvar GenIcon = require('../lib').GenIcon\nmodule.exports.FaFacebook = function FaFacebook (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M504 256C504 119 393 8 256 8S8 119 8 256c0 123.78 90.69 226.38 209.25 245V327.69h-63V256h63v-54.64c0-62.15 37-96.48 93.67-96.48 27.14 0 55.52 4.84 55.52 4.84v61h-31.28c-30.8 0-40.41 19.12-40.41 38.73V256h68.78l-11 71.69h-57.78V501C413.31 482.38 504 379.78 504 256z\"}}]})(props);\n};\n","// THIS FILE IS AUTO GENERATED\nvar GenIcon = require('../lib').GenIcon\nmodule.exports.FaGoogle = function FaGoogle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 488 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M488 261.8C488 403.3 391.1 504 248 504 110.8 504 0 393.2 0 256S110.8 8 248 8c66.8 0 123 24.5 166.3 64.9l-67.5 64.9C258.5 52.6 94.3 116.6 94.3 256c0 86.5 69.1 156.6 153.7 156.6 98.2 0 135-70.4 140.8-106.9H248v-85.3h236.1c2.3 12.7 3.9 24.9 3.9 41.4z\"}}]})(props);\n};\n","// THIS FILE IS AUTO GENERATED\nvar GenIcon = require('../lib').GenIcon\nmodule.exports.FaPinterest = function FaPinterest (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M496 256c0 137-111 248-248 248-25.6 0-50.2-3.9-73.4-11.1 10.1-16.5 25.2-43.5 30.8-65 3-11.6 15.4-59 15.4-59 8.1 15.4 31.7 28.5 56.8 28.5 74.8 0 128.7-68.8 128.7-154.3 0-81.9-66.9-143.2-152.9-143.2-107 0-163.9 71.8-163.9 150.1 0 36.4 19.4 81.7 50.3 96.1 4.7 2.2 7.2 1.2 8.3-3.3.8-3.4 5-20.3 6.9-28.1.6-2.5.3-4.7-1.7-7.1-10.1-12.5-18.3-35.3-18.3-56.6 0-54.7 41.4-107.6 112-107.6 60.9 0 103.6 41.5 103.6 100.9 0 67.1-33.9 113.6-78 113.6-24.3 0-42.6-20.1-36.7-44.8 7-29.5 20.5-61.3 20.5-82.6 0-19-10.2-34.9-31.4-34.9-24.9 0-44.9 25.7-44.9 60.2 0 22 7.4 36.8 7.4 36.8s-24.5 103.8-29 123.2c-5 21.4-3 51.6-.9 71.2C65.4 450.9 0 361.1 0 256 0 119 111 8 248 8s248 111 248 248z\"}}]})(props);\n};\n","import React from \"react\";\n\nimport X from \"../../assets/posts/X.svg\";\nimport { FaPinterest } from \"@react-icons/all-files/fa/FaPinterest\";\nimport { FaLinkedin } from \"@react-icons/all-files/fa/FaLinkedin\";\nimport { FaGoogle } from \"@react-icons/all-files/fa/FaGoogle\";\nimport { FaFacebook } from \"@react-icons/all-files/fa/FaFacebook\";\n\nconst ShareButtons = ({\n url,\n postTitle,\n shareTitle,\n}: {\n url: string;\n postTitle: string;\n shareTitle: string;\n}) => {\n return (\n
\n

{shareTitle}

\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n );\n};\n\nexport const ShareButton = ({\n url,\n media,\n children,\n}: React.PropsWithChildren<{ url: string; media: string }>) => {\n return (\n \n {children}\n \n );\n};\n\nexport default ShareButtons;\n","import React from \"react\";\nimport { graphql, useStaticQuery } from \"gatsby\";\nimport { GatsbyImage, ImageDataLike, getImage } from \"gatsby-plugin-image\";\n\nconst PostFooter = ({ title, text }: { title: string; text: string }) => {\n const fileData = useStaticQuery(query) as { file: ImageDataLike | null };\n const image = getImage(fileData?.file);\n\n return (\n
\n {image ? (\n \n ) : null}\n
\n

{title}

\n

{text}

\n
\n
\n );\n};\n\nexport default PostFooter;\n\nexport const query = graphql`\n query {\n file(name: { eq: \"postFooterImage\" }) {\n childImageSharp {\n gatsbyImageData(\n formats: [AUTO, WEBP, AVIF]\n placeholder: BLURRED\n width: 160\n )\n }\n }\n }\n`;\n","import React from \"react\";\n\nconst PostHashtags = ({\n keywords,\n readMoreTitle,\n}: {\n keywords: string[];\n readMoreTitle: string;\n}) => {\n return (\n
\n

{readMoreTitle}

\n
\n {keywords.map((hashtag) => (\n \n #{hashtag}\n
\n ))}\n
\n \n );\n};\n\nexport default PostHashtags;\n","import React from \"react\";\nimport { HeadFC, PageProps, graphql } from \"gatsby\";\nimport { useLocation } from \"@reach/router\";\n\nimport { IPostPageContext, IPostQueryResult } from \"../types/post.type\";\n\nimport { HeadSeo, LocalBusinessMetadata } from \"../components/common/metadata\";\nimport ContentContainer from \"../components/common/contentContainer\";\nimport ShareButtons from \"../components/posts/shareButtons\";\nimport PostFooter from \"../components/posts/postFooter\";\nimport { GatsbyImage, getImage } from \"gatsby-plugin-image\";\nimport PostHashtags from \"../components/posts/postHashtags\";\n\nconst Post = ({\n data: {\n markdownRemark: {\n frontmatter,\n html,\n wordCount: { words },\n },\n },\n pageContext: { markupData, lang },\n}: PageProps) => {\n const { href: currentUrl } = useLocation();\n\n const { date, title, keywords, author, authorPosition, authorPhoto } =\n frontmatter;\n\n const avatar = getImage(authorPhoto);\n\n const minutes = Math.floor(words / 200);\n const readingTime = minutes ? minutes : 1;\n\n return (\n <>\n \n \n \n {avatar ? (\n \n ) : null}\n
\n

\n {author}\n

\n

\n {authorPosition}\n

\n
\n \n\n
\n {date}\n\n \n {markupData.readingTimeTitle}: {readingTime}\n {markupData?.readingTimeUnits}.\n \n
\n\n \n {title}\n \n\n \n\n
\n {keywords ? (\n \n ) : null}\n\n \n
\n\n \n {/*
\n {keywords ? (\n
\n {keywords.map((hashtag) => (\n \n #{hashtag.toLowerCase()}\n
\n ))}\n
\n ) : null}\n
\n \n
\n */}\n \n \n \n \n );\n};\n\nexport default Post;\n\nexport const Head: HeadFC = ({\n data: {\n markdownRemark: {\n frontmatter: { title },\n },\n },\n pageContext,\n location,\n}) => (\n \n);\n\nexport const query = graphql`\n query ($id: String, $lang: String) {\n markdownRemark(id: { eq: $id }) {\n frontmatter {\n date(formatString: \"DD MMM YYYY\", locale: $lang)\n title\n keywords\n author\n authorPosition\n authorPhoto {\n childImageSharp {\n gatsbyImageData(\n width: 64\n formats: [AUTO, WEBP, AVIF]\n placeholder: BLURRED\n )\n }\n }\n }\n html\n wordCount {\n words\n }\n }\n }\n`;\n","var React = require('react');\n\nfunction X (props) {\n return React.createElement(\"svg\",props,[React.createElement(\"g\",{\"clipPath\":\"url(#clip0_1390_2975)\",\"key\":0},React.createElement(\"path\",{\"d\":\"M15.7511 0H18.8178L12.1179 8.47193L20 20H13.8282L8.99457 13.0081L3.46363 20H0.394883L7.56109 10.9385L0 0H6.32809L10.6975 6.39068L15.7511 0ZM14.6747 17.9691H16.3741L5.40481 1.92425H3.58137L14.6747 17.9691Z\",\"fill\":\"#E4E4E4\"})),React.createElement(\"defs\",{\"key\":1},React.createElement(\"clipPath\",{\"id\":\"clip0_1390_2975\"},React.createElement(\"rect\",{\"width\":\"20\",\"height\":\"20\",\"fill\":\"white\"})))]);\n}\n\nX.defaultProps = {\"width\":\"20\",\"height\":\"20\",\"viewBox\":\"0 0 20 20\",\"fill\":\"none\"};\n\nmodule.exports = X;\n\nX.default = X;\n"],"names":["GenIcon","module","exports","props","ShareButton","_ref2","url","media","children","React","href","target","title","_ref","postTitle","shareTitle","className","X","FaPinterest","size","FaLinkedin","FaGoogle","FaFacebook","text","fileData","useStaticQuery","query","image","getImage","file","GatsbyImage","alt","keywords","readMoreTitle","map","hashtag","key","itemProp","data","markdownRemark","frontmatter","html","wordCount","words","pageContext","markupData","lang","currentUrl","useLocation","date","author","authorPosition","authorPhoto","avatar","minutes","Math","floor","readingTime","itemScope","itemType","ContentContainer","maxWidthClass","readingTimeTitle","readingTimeUnits","dangerouslySetInnerHTML","__html","PostHashtags","readMoreOnTopicTitle","ShareButtons","sharePostTitle","PostFooter","postFooterTitle","postFooterText","LocalBusinessMetadata","Head","location","HeadSeo","head","toUpperCase","siteUrl","site","path","pathname","createElement","defaultProps","default"],"sourceRoot":""} \ No newline at end of file diff --git a/cookie-policy/index.html b/cookie-policy/index.html index 508326ef..5cb699ff 100644 --- a/cookie-policy/index.html +++ b/cookie-policy/index.html @@ -1,6 +1,6 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/index.html b/index.html index 9e592136..b8c94d3b 100644 --- a/index.html +++ b/index.html @@ -1,6 +1,6 @@ -

AR

CAD ADDINS

PLM

QUALITY ASSURANCE

3D

ETL

WEB DEVELOPMENT

UX/UI

MOBILE APP

CLOUD & DEVOPS

SOME OF OUR PROJECTS

DISCOVER MORE
cover

Bimcore Revit Add-In

cover

Web & Mobile apps for a logistics company

cover

IFSE Parameters Tool for Revit

OUR CUSTOMERS' SAY ABOUT US

REAL FEEDBACK FROM REAL PEOPLE
Specifi Europe Srl

Fabio Tantaro

General Manger, Specifi Europe Srl

Italy

Codecave helped us to migrate from our old internal system to the new ones, writing documentation that we will re-use in the future and assuring no lack of service in the interim for our customers.

Prima Consulting d.o.o.

Roberto Assi

CEO, Prima Consulting d.o.o.

Serbia

As a service company we wanted to create a website that would sum up all of our experiences gathered over the past 30 years.

At the same time we wanted it to be dynamic, with a possibility to add new information over time, as we know that only dynamism makes a website more interesting to its visitors.

We contacted CODECAVE, because we had a chance to collaborate with their CEO when he worked in an Italian IT company. Yaroslav guided us through all the stages of website creation, providing us a complete support. We would like to express our satisfaction with the service and the outcome.

Soytex LLC

SIA "Agrolats Group"

CEO, Soytex LLC

Latvia

During our collaboration CodеCave have proven themselves to be a reliable and responsible company, which quickly and qualitatively solves all the tasks assigned to them.

-

We had a very tight deadlines, however CodeCave team have managed to create a bleeding edge web presentation for us. In the process they always paid great attention all our needs.

LET’S DISCUSS YOUR PROJECT

WE’LL BE GLAD TO HEAR FROM YOU!

Give us some details about your project or idea, so we can offer you a better consultation. +

We had a very tight deadlines, however CodeCave team have managed to create a bleeding edge web presentation for us. In the process they always paid great attention all our needs.

LET’S DISCUSS YOUR PROJECT

WE’LL BE GLAD TO HEAR FROM YOU!

Give us some details about your project or idea, so we can offer you a better consultation. It’s free. No strings attached. We’re confident we can jump right into a complex ongoing project or start with you from scratch. @@ -75,6 +75,6 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/page-data/app-data.json b/page-data/app-data.json index 01c4d4e3..986539a8 100644 --- a/page-data/app-data.json +++ b/page-data/app-data.json @@ -1 +1 @@ -{"webpackCompilationHash":"9f5994ebd2a890912485"} +{"webpackCompilationHash":"291355437a8f164acbc7"} diff --git a/page-data/blog/10582553-73a2-569f-8bdd-980e1f77c10a/page-data.json b/page-data/blog/10582553-73a2-569f-8bdd-980e1f77c10a/page-data.json new file mode 100644 index 00000000..ed9bcdcd --- /dev/null +++ b/page-data/blog/10582553-73a2-569f-8bdd-980e1f77c10a/page-data.json @@ -0,0 +1 @@ +{"componentChunkName":"component---src-pages-templates-post-tsx","path":"/blog/10582553-73a2-569f-8bdd-980e1f77c10a/","result":{"data":{"markdownRemark":{"frontmatter":{"date":"20 Jun 2024","title":"Streamlining Changelog Creation with Azure DevOps and Confluence","keywords":["devops","azure devops","confluence","changelog"],"author":"Alina Podryabinkina","authorPosition":"DevOps Engineer","authorPhoto":{"childImageSharp":{"gatsbyImageData":{"layout":"constrained","placeholder":{"fallback":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAZCAIAAAC+dZmEAAAACXBIWXMAAAsTAAALEwEAmpwYAAAFbElEQVR42lWSiVPSaRjHf2ur8Du4BDVFVBRFKwhQDm/EEvFC8wKtPKFMbb0qNa0pa7dZK9NJrbTNjMQDvEIRFfHWwANrdmd3/5p90cmZnXnmnWfeeT7P9zvf94W2F/S7llG71bi/ajxYnfq2teDcMn/fnt+xjD6oLlKIwqVcZgSdFhXKyI7nNWtVzo0vf35dPNqaP9qagwC5uzjqWAHw1MHqtHPDDPhdy8i9UuVlfog8MjQ2IlAli72RlawQc/wphOJM2dflib8cy86NY9i+NL5nNRzYDIerkwerM0ebpu62G1mSiDxZZHbshfay3L0ZnU3XP/b8YVNJbiCNXJGv+LY9v79ugoCsfWnMsQz4cefa9NHmnG1qUJMRXZAcVZoZXyIXfuho+LY6t2cet09/WtX1lytTRGzGl+GXdusUUNYD0mGd2FsxHK5NH26Y+h/VZonCSjLitXmyluIUq67/X/um0zqzM/NpTf/utzqNJDzgj87mLfMotLvkUgbk/orBuTm7bhquzU/KFIaVZcbdLpB21V93Wk1/79gOlyftJr1V1/dAoxYE+rxs0W6a9ZB9eQzI7ruUJ452TLqedrWMV5jAqVMladNFpZdiOirU62MDh4vG7anhhcGu2vw0Mcv3WZ162TgIOZbH9q1AFqQ9aV8xPL5VcCU6ouZKbEdlelO+vDontfeXsjX9W+OrDo1CWiJPSLwYrohiv2ouN+v7oOOoJlye16ct4723smIq04S3M4Rv60u+z4/vzY5sTw475sYG2xvVSTFyTiifFSAXsF61li8aBqBjzwbHysTB+sybjtrKVEGjKlGTxJ3vevSPbeFoaXbPNLpj/GR+37P45kV3vYbD9Eu5GNTdVmmb/eiyDZQP1qbWvwzdLUq+nRffmB9XIeOPP2u1fXxt072xDfWujQzMvP593zDce6cmzJemFLJeP9Cumj6DwPQgs4ONmeHnd7SpvKai5NocSZmUO9n31DLUszLQYxnsGrxf8/lpy0LvswwxP4xOzYtmPdTmbC2MQl8X9Y4Vw7pp6Nfq7KoMYZNaWqMUpZzz62mtso0OTNfVW+qahrTlEz2PmkquYB7unCCvVB6jMl2ybRmDdiyfwcce6my8o0poUCVWZYk0qXw+w7Mgjmse7t6d1c8+eaBrqbt/s/gc0+8c0zfcjyIO8UrjBS2AtMEnmf7Q+bAy/V7J5XpV4nXZhauy86yzZAGLUadKN77rmhvp06iVVALK8CLTKQQGBePQKZJgb+NgJwRyetFY3KrJvFsmv6UU54hDc+PYdCoRQzEYD3sSMLoXze0nNwqZSKeRfQgonUzww/Ayfph18j3U3aYtlIvz5ZLGq7LSyxcVAmZKZLA3lUQhe8Iw9rM7zu2MO4ygBAwlIngiHkcjIAFUQjIvuLk8G+KFh1xgBxelRTcUSvNjwrPELCHbD4ExIpEMw+hJ4fEIgqCgA2aoGMI86wky5wbQoOCggEuxgsbrqTVKSY4oNCeG7e9FxsMoihIQBDshf6yAQVFQ2IuE+VJJ/jQKFMmNuJaV0K7NqJALipM4SfwQnAslAPH/k64Gh0dJKOpFxKgkAoVIgERcdnWxvK0sRaOILFFE+Xp5euBgMHcMY/Cx+Al8XCgRw8LoNLq3J9OPBkl47LabGfeK4huuJvEjmO4eMHB7MgpgcOJwMM5l2HWDwCA4LJxOpdMoPp5kKDdF+KQqtfmaVCo+jz91iD+VcvVgC8AQmIgiRLD6fKA3iofdPfBQvTrhcXmCMoGDYkTwJMdSP7DTqI9JF4wS8HhMEOZPIxGAR6ilUFyWygv090UQEoaQwBwMCg8Mn6Z1kpyrUATzwCHcUEagD9XtjMd/4LIQtzGUCroAAAAASUVORK5CYII="},"images":{"fallback":{"src":"/static/20f2a8d8398e868f0d50bd7fb356ffdb/c032f/author.jpg","srcSet":"/static/20f2a8d8398e868f0d50bd7fb356ffdb/1f64c/author.jpg 16w,\n/static/20f2a8d8398e868f0d50bd7fb356ffdb/af0fe/author.jpg 32w,\n/static/20f2a8d8398e868f0d50bd7fb356ffdb/c032f/author.jpg 64w,\n/static/20f2a8d8398e868f0d50bd7fb356ffdb/464e8/author.jpg 128w","sizes":"(min-width: 64px) 64px, 100vw"},"sources":[{"srcSet":"/static/20f2a8d8398e868f0d50bd7fb356ffdb/8cd5f/author.avif 16w,\n/static/20f2a8d8398e868f0d50bd7fb356ffdb/34a4f/author.avif 32w,\n/static/20f2a8d8398e868f0d50bd7fb356ffdb/d6ed5/author.avif 64w,\n/static/20f2a8d8398e868f0d50bd7fb356ffdb/8b866/author.avif 128w","type":"image/avif","sizes":"(min-width: 64px) 64px, 100vw"},{"srcSet":"/static/20f2a8d8398e868f0d50bd7fb356ffdb/94d43/author.webp 16w,\n/static/20f2a8d8398e868f0d50bd7fb356ffdb/6c901/author.webp 32w,\n/static/20f2a8d8398e868f0d50bd7fb356ffdb/aa76d/author.webp 64w,\n/static/20f2a8d8398e868f0d50bd7fb356ffdb/5e01a/author.webp 128w","type":"image/webp","sizes":"(min-width: 64px) 64px, 100vw"}]},"width":64,"height":80}}}},"html":"

Streamlining Changelog Creation with Azure DevOps and Confluence

\n

In the fast-paced world of software development, maintaining a detailed record of changes is crucial. Changelogs serve as a vital tool, tracking every update, fix, or feature added to a project. Integrating Azure DevOps with Confluence can create a seamless changelog management system that enhances transparency and efficiency. This blog post explores how to automate changelog creation in Confluence using a PowerShell script that extracts release information from an Azure DevOps repository.

\n

\n \n \n \n \n

\n

By the end of this article, you will have a script that automates the extraction of changelog information from the latest and previous versions of a repository using Git commands. It then uses the ConfluencePS module to create a new Confluence page displaying the changelog. The script is configured to run in Azure Pipelines under certain conditions, such as when a new tag is created in the repository.

\n

Let’s start!

\n

What do we need?

\n
    \n
  1. Receive release information.
  2. \n
  3. Retrieving the changelog between previous and latest version.
  4. \n
  5. Create a Confluence page.
  6. \n
  7. Integration with Azure pipelines.
  8. \n
\n

Let's start by preparing Confluence to create a new changelogs folder. To do this we need to follow these steps:

\n

Step 1: Creating a Parent Page:

\n

• Sign in to your Confluence account.

\n

• Go to the Space where you want to create the changelogs folder.

\n

• Create a new page that will serve as the parent page for all future changelogs pages. This can be done by selecting \"Create\" and following the instructions to create a page.

\n

Step 2: Getting SpaceKey:

\n

• The SpaceKey is usually shown in the URL when you are in a Confluence space.

\n

• If the key does not appear in the URL, you can find it by going to Space tools > Overview > Space details.

\n

Step 3: Getting Parent Page ID:

\n

• The Parent Page ID (ParentID) can be found in the URL when you are on the page that will serve as the parent of changelogs. In the page URL, look at the pageId parameter, this will be the ParentID.

\n

Step 4: Confluence Site URL entry:

\n

• Your Confluence site URL is the address you use to log into Confluence. For example, https://yourcompany.atlassian.net/wiki.

\n

You now have all the information you need to create new changelogs pages using the script.

\n
\n

[⚠️ Warning:]Make sure you have the appropriate permissions to create and edit pages in your chosen Confluence space.

\n
\n

Step 5: Creating PowerShell Script

\n

Now we create a file confluence.ps1 in the root of our repository.

\n

Firstly our script gets a list of changes between these versions. (Line 1-11)

\n

Next the script creates a new Confluence page that displays the change log, using the ConfluencePS module, passes it to the environment variable for our pipeline. (Line 13-33)

\n
Param ([String]$username, [String]$password) # Get username and password options from Azure Pipeline\n$repoPath = \".\" # Set the repository path as the current directory\n$currentVersion = git describe --abbrev=0 HEAD  # Get the latest version of the repository using git\n# Write-Host $currentVersion\n$prevVersion = git describe --abbrev=0 $currentVersion^  #Get the previous version of the repository using git\n# Write-Host $prevVersion\n$changelog = git log --no-merges --pretty=\"- %s<br />\" \"$prevVersion..$currentVersion\"  #Get the list of changes between the two versions using git\n# Write-Host $changelog\n# exit -0\n$confluenceUrl = \"https://your.atlassian.net/wiki\"  #Set the Confluence URL\n$securePassword = $password | ConvertTo-SecureString -AsPlainText -Force #Convert the password to a secure string\n$credentials = New-Object System.Management.Automation.PSCredential `\n     -ArgumentList $username, $securePassword   #Create a credential object for Confluence\n#Check if the module ConfluencePS is installed    \nif (-not (Get-Module -Name ConfluencePS -ListAvailable)) {\n    Install-Module -Name ConfluencePS -Scope CurrentUser -Force\n} \nImport-Module ConfluencePS # Import the module ConfluencePS\nSet-ConfluenceInfo -BaseURI $confluenceUrl -Credential $credentials   #Set the information about Confluence using the URL and credentials\n$body = @\"\n<h2>What's new in comparison with version $prevVersion</h2>\n<pre>$changelog</pre>\n\"@\n$page = New-ConfluencePage -Title \"What's new in $currentVersion\" -SpaceKey YOURSPACEKEY -ParentID YOUR_PARENT_ID -Body $body  #Create a new Confluence page with the given title, space key and body\n$pageObj = Get-ConfluencePage -PageID $page.ID     # Get the Confluence page object by ID\nWrite-Output $pageObj.URL     #Print the page URL to the screen\nWrite-Host \"##vso[task.setvariable variable=confluenceUrl]$($pageObj.URL)\"    #Set the variable confluenceUrl for Azure Pipeline using the page URL
\n
\n

[⚠️ Warning:] To use this script, you need to change the following:

\n
\n

$confluenceUrl to your Confluence site URL. (line 13)
\nYOURSPACEKEY on the key of your space in Confluence. (line 30)
\nYOUR_PARENT_ID on the ID of the parent page where the new page is to be created. (line 30)
\n• Make sure you have Git installed and available in your script path.
\n• Make sure you have rights to create pages in the specified Confluence space.
\n• If you are not using Azure Pipeline, remove or modify the lines associated with Write-Host \"##vso[task.setvariable variable=confluenceUrl]$($pageObj.URL)\" to suit your runtime environment.

\n

In the script, you can experiment with the body of the page and the list of data that you want to send to the changelog.

\n

Step 6: Integration with Azure pipelines.

\n

The task is configured to run in Azure Pipelines and only runs under certain conditions, such as when a new tag is created in the repository.\n$USERNAME and $PASSWORD variables are stored in pipeline secrets and are passed during pipeline startup. The task causes our script to run.

\n
Azure Pipeline Task\n\n- task: PowerShell@2\n  condition: and(not(eq(variables['Build.Reason'], 'PullRequest')), BeginsWith(variables['Build.SourceBranch'], 'refs/tags/'))\n  displayName: Create a changelog and create a page in Confluence.\n  inputs:\n    file path: .\\confluence.ps1\n    arguments: '-username $(USERNAME) -password $(PASSWORD)'
\n

Add it to your Azure pipeline. As a result, we have a page with changes!

\n

Conclusion

\n

Automating change logs with Azure DevOps and Confluence simplifies the documentation process and keeps information up to date. This approach allows teams to focus on development, leaving the routine work of documenting changes.

\n

This blog provides a high-level overview of the integration process and can serve as a starting point for teams looking to improve their change management processes. We hope it was useful.

\n

We wish you a great mood and interesting tasks!

","wordCount":{"words":722}}},"pageContext":{"id":"10582553-73a2-569f-8bdd-980e1f77c10a","lang":"en","markupData":{"bannerTitle":"Well unknown facts","head":"CodeCave Blog","readPostLink":"Open article","readingTimeTitle":"Reading time","readingTimeUnits":"m","postFooterTitle":"Congratulations! Now you can show off with your new knowledge!","postFooterText":"If you want us to uncover some other Well unknown facts, you can contact us via the socials or e-mail below. See you!","sharePostTitle":"Share this post","readMoreOnTopicTitle":"Read more on","blogSectionTitle":"new in our blog","blogSectionLinkTitle":"all posts","image":{"childImageSharp":{"gatsbyImageData":{"layout":"constrained","placeholder":{"fallback":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAACXBIWXMAAAsTAAALEwEAmpwYAAAD1UlEQVR42pWUX0zTVxTHCwT501JKaWmBrsUV5N9gIixsuqgwlDCge7Hooli0yp9ZRR+0BdryxxU7oVCQgC3Kn1IMf0S3xLlMI2Mapw+a6JMGX9yMe3EPbvoimHw99xJJnIPpw82vub33ez7nnO89gqioKLzLkkqlkMvliI6O5r+XOid4FzEmFBkZiaCgIISFhSEiIoKLMvH3EnxNFRwcDI1GA4vFgry8PHyo1UIsFkMoFEImk71BvKQgOygSibiYXl+Ge/fu4+X8PC5f+hkOhwOmfSZkrc7ixOHh4Yu0gv+iYt+AgABotYnw+/2Ym5vDo0e/49zUJI47nejr7cXQ4BDcnW7UVNcgOzsbK1aEcGrBv6lYtNDQUOytrMTjx3/i+fNnuHv3DsbHx+AbHibRKTTa7XC1tWNsbAxdbjfG6Wsxm6GKVy0IMiGGHBgYiKysNbh48SeieoHZ2fu4dvVXDA0MwNXeDk9fH/wjI7h58wbOjI7CcsSMbncXBgdOw+v1ID09HQKWIqsD66KZojx58hf++fspZn6ZRmdHB4YHB9F+vA1ej4eo2jjZMUcrJscniK6LU/d0d6PJ3rggyCyQm5uLW7duY36eavXHQ/zw/Xn0e7041d/Pa+Y96eE0vmEfJicmUF1ZBVPNN+jt6eGp7qqoQN6GjdwJnDAjI4NHYh1sqKuDo+UoRkf8sFutOEkNsFlt2GUwoKW5mUjsGDh9Ctd/u4ZOlwtlej0+ycmBtb4BO7Zvh4DVLiQkBPFxcWhqbKRauehyBewNVkydPcvJeohk+so0Dpj2o+07J2ZmpvFgdhaObx3YuH49mumeTqdb6LJEIqHuxEOjVnPL6LdswYkT3TAfPgLDjnK0kud+vHAB9XX1VAIvX9VVVbyue4xGnhGzDXMGu79om5UJCUhOToaYapqelkYCdXAec2KvcQ8tI5ytrWhpaoKupBRRBJFDIpsKNkFNIEzsLWOLqcuMNjMjE6XFJRCSH4uKiqhuLZzyYG0t1n62Fh9RJ5kjNhcU4PN167hvme3eenrszUrooMGwE1/pSpFEr0ROB9UaNfabTCjcXEj12oBDtQfxRX4+PiVnlBQXLw6KNwTZBouUTw9/xOfj6bP91ZkfIykxkYgk2Fa2FUeJ1mazwWjcDZFQxJuw5LRh6SoUCqKSQ6P6AAlqDd9TqVT4eus2lJeXIzU1FV8WFiJOGcvT/t/xxQRer/jYOEpbC6VCSeWIgTJGgZSkVVDExCCS/pe+z4BlhxmBTBYNbcJKJCcmIS0lBbFKJQ+23AxddsCyywvCMkhYEE4mXVbwFQflxPovnsZUAAAAAElFTkSuQmCC"},"images":{"fallback":{"src":"/static/b358397f973ed74732db29698c1773d1/30cdc/blog.png","srcSet":"/static/b358397f973ed74732db29698c1773d1/7458e/blog.png 75w,\n/static/b358397f973ed74732db29698c1773d1/de3a1/blog.png 150w,\n/static/b358397f973ed74732db29698c1773d1/30cdc/blog.png 300w","sizes":"(min-width: 300px) 300px, 100vw"},"sources":[{"srcSet":"/static/b358397f973ed74732db29698c1773d1/eb54c/blog.avif 75w,\n/static/b358397f973ed74732db29698c1773d1/81307/blog.avif 150w,\n/static/b358397f973ed74732db29698c1773d1/aa5b9/blog.avif 300w","type":"image/avif","sizes":"(min-width: 300px) 300px, 100vw"},{"srcSet":"/static/b358397f973ed74732db29698c1773d1/18188/blog.webp 75w,\n/static/b358397f973ed74732db29698c1773d1/c65bc/blog.webp 150w,\n/static/b358397f973ed74732db29698c1773d1/078c3/blog.webp 300w","type":"image/webp","sizes":"(min-width: 300px) 300px, 100vw"}]},"width":300,"height":300}}}},"site":{"siteUrl":"https://www.codecave.it"}}},"staticQueryHashes":["2595676272","2708699711","639074693"],"slicesMap":{}} \ No newline at end of file diff --git a/page-data/blog/c924c93c-fac0-517e-92e7-c5b5aaa083c2/page-data.json b/page-data/blog/c924c93c-fac0-517e-92e7-c5b5aaa083c2/page-data.json new file mode 100644 index 00000000..eef19852 --- /dev/null +++ b/page-data/blog/c924c93c-fac0-517e-92e7-c5b5aaa083c2/page-data.json @@ -0,0 +1 @@ +{"componentChunkName":"component---src-pages-templates-post-tsx","path":"/blog/c924c93c-fac0-517e-92e7-c5b5aaa083c2/","result":{"data":{"markdownRemark":{"frontmatter":{"date":"21 Jun 2024","title":"Proxmox VM Templates and Cloud-Init","keywords":["devops","cloud-init","proxmox","VM","virtualization"],"author":"Alina Podryabinkina","authorPosition":"DevOps Engineer","authorPhoto":null},"html":"

Proxmox and Cloud-Init virtual machine templates

\n

In the world of virtualization, efficiency and automation are key. This is where Proxmox Virtual Environment (VE) comes into play, offering a robust solution for easily managing virtual machines (VMs). One of the most interesting features of Proxmox is the ability to use virtual machine templates in combination with Cloud-Init, which simplifies the deployment process and makes it as smooth as in the cloud.\nLet's figure it out.

\n

\n \n \n \n \n

\n

What is Proxmox?

\n

Proxmox is a free and open source virtualization platform, which means anyone can use or modify it at no cost. It's like a set of tools that allows you to create multiple isolated computers (virtual machines) on a single physical machine. These virtual machines can simultaneously run multiple operating systems such as Windows or Linux, making them versatile for testing, development, or even production environments.

\n

Proxmox is the manager of these virtual environments. It uses a technology called KVM (kernel-based virtual machine), which ensures that each virtual machine runs smoothly without interfering with others. In addition, Proxmox can handle so-called containers via LXC (Linux Containers), which are even lighter than VMs and great for running individual applications with minimal overhead.

\n

You also can manage your VMs and containers from a browser. Web-based interface designed to be user-friendly, so even those new to virtualization can get started without too much trouble.

\n

What are Proxmox VM Templates?

\n

Proxmox VM templates are essentially pre-configured VMs that serve as blueprints for creating new instances. They include the operating system, installed software, and system configurations. The beauty of templates is that they save time and ensure consistency across deployments. You can quickly spin up new VMs without going through the entire installation and configuration process each time.

\n

The Role of Cloud-Init

\n

Cloud-Init is a versatile package that supports various distributions and handles the initial setup of a VM instance, such as network configuration and SSH key distribution. When a VM boots for the first time, Cloud-Init applies the predefined settings, allowing for a hands-off approach to VM provisioning https://pve.proxmox.com/wiki/Cloud-Init_Support.

\n

Combining Proxmox Templates with Cloud-Init

\n

Integrating Cloud-Init with Proxmox VM templates brings the best of both worlds. Here's how you can leverage this combination to your advantage:

\n

Step 1: Preparing Your Template

\n

Start by preparing your VM with the desired configuration. Install the operating system and all necessary packages, including Cloud-Init. Once your VM is ready, convert it into a template to serve as the foundation for future VMs.

\n

Below is the script we use to create the template:

\n
#! /bin/bash\n\n# Install Cloud-Init enabled Ubuntu VM in Proxmox\n\n# Download Ubuntu Cloud Image (Ubuntu 22.04 cloudimg)\nwget https://cloud-images.ubuntu.com/jammy/current/jammy-server-cloudimg-amd64.img\n\n# Install qemu-guest-agent on Ubuntu Cloud Image\n# The libguestfs-tools package must be installed on the system where the ubuntu cloudimg will be modified.\napt-get update\napt-get install libguestfs-tools\n\n# This step will install qemu-guest-agent on the Ubuntu cloud image via virt-customize.\nvirt-customize -a jammy-server-cloudimg-amd64.img --install qemu-guest-agent\n\n# Install git\nvirt-customize -a jammy-server-cloudimg-amd64.img --install git\n\n# Set environment variables. Change these as necessary.\nexport STORAGE_POOL=\"DATA\"\nexport VM_ID=\"1000\"\nexport VM_NAME=\"jammy-template\"\n\n# Create Proxmox VM image from Ubuntu Cloud Image.\nqm create $VM_ID --name $VM_NAME --memory 2048 --net0 virtio,bridge=vmbr2 --scsihw virtio-scsi-pci\nqm set $VM_ID --scsi0 $STORAGE_POOL:0,import-from=/root/jammy-server-cloudimg-amd64.img\n\n# Create Cloud-Init Disk and configure boot.\nqm set $VM_ID --ide2 $STORAGE_POOL:cloudinit\nqm set $VM_ID --boot order=scsi0\nqm set $VM_ID --serial0 socket --vga serial0\n# qm resize $VM_ID scsi0 +20G\n\n# Convert VM to Template\nqm template $VM_ID\n\n# Clean Up\nrm jammy-server-cloudimg-amd64.img
\n

Step 2: Deploying VMs from the Template

\n

With your template in place, you can create linked clones quickly. These clones are lightweight and share the base image with the template, which means rapid deployment. Before starting the new VM, configure the network and SSH keys through the Proxmox interface.

\n

Step 3: Customizing with Cloud-Init

\n

When you start a VM from the template, Cloud-Init kicks in. It reads the configuration data from an ISO image attached to the VM as a CD-ROM. This data includes network settings, user accounts, and SSH keys. Proxmox automatically generates this ISO image, and Cloud-Init applies the settings on the first boot.

\n

We go through steps 2 and 3 via Terraform. This significantly speeds up the process when you need to change some template parameters and create several identical machines at the same time.

\n
\n

[Best Practices:]

\n
\n

• SSH Key Authentication: It's recommended to use SSH keys for authentication rather than passwords for security reasons. Proxmox can store encrypted passwords, but keys are a safer alternative.
\n
\n• Serial Console: Many Cloud-Init images rely on a serial console, which is a requirement for OpenStack. Ensure that your template is configured to use a serial console as the display.
\n
\n• Custom Configuration: While many distributions offer ready-to-use Cloud-Init images, creating your own ensures that you know exactly what's installed, making it easier to customize later.

\n
\n

Conclusion

\n

Proxmox VM templates combined with Cloud-Init provide a powerful, efficient, and automated way to manage VM deployments. This synergy not only saves time but also ensures that each VM is configured consistently according to your standards.

\n

If you want to learn more, I suggest you start by exploring the official Proxmox documentation and community forums for detailed guides and support

\n

Happy virtualizing!

","wordCount":{"words":659}}},"pageContext":{"id":"c924c93c-fac0-517e-92e7-c5b5aaa083c2","lang":"en","markupData":{"bannerTitle":"Well unknown facts","head":"CodeCave Blog","readPostLink":"Open article","readingTimeTitle":"Reading time","readingTimeUnits":"m","postFooterTitle":"Congratulations! Now you can show off with your new knowledge!","postFooterText":"If you want us to uncover some other Well unknown facts, you can contact us via the socials or e-mail below. See you!","sharePostTitle":"Share this post","readMoreOnTopicTitle":"Read more on","blogSectionTitle":"new in our blog","blogSectionLinkTitle":"all posts","image":{"childImageSharp":{"gatsbyImageData":{"layout":"constrained","placeholder":{"fallback":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAACXBIWXMAAAsTAAALEwEAmpwYAAAD1UlEQVR42pWUX0zTVxTHCwT501JKaWmBrsUV5N9gIixsuqgwlDCge7Hooli0yp9ZRR+0BdryxxU7oVCQgC3Kn1IMf0S3xLlMI2Mapw+a6JMGX9yMe3EPbvoimHw99xJJnIPpw82vub33ez7nnO89gqioKLzLkkqlkMvliI6O5r+XOid4FzEmFBkZiaCgIISFhSEiIoKLMvH3EnxNFRwcDI1GA4vFgry8PHyo1UIsFkMoFEImk71BvKQgOygSibiYXl+Ge/fu4+X8PC5f+hkOhwOmfSZkrc7ixOHh4Yu0gv+iYt+AgABotYnw+/2Ym5vDo0e/49zUJI47nejr7cXQ4BDcnW7UVNcgOzsbK1aEcGrBv6lYtNDQUOytrMTjx3/i+fNnuHv3DsbHx+AbHibRKTTa7XC1tWNsbAxdbjfG6Wsxm6GKVy0IMiGGHBgYiKysNbh48SeieoHZ2fu4dvVXDA0MwNXeDk9fH/wjI7h58wbOjI7CcsSMbncXBgdOw+v1ID09HQKWIqsD66KZojx58hf++fspZn6ZRmdHB4YHB9F+vA1ej4eo2jjZMUcrJscniK6LU/d0d6PJ3rggyCyQm5uLW7duY36eavXHQ/zw/Xn0e7041d/Pa+Y96eE0vmEfJicmUF1ZBVPNN+jt6eGp7qqoQN6GjdwJnDAjI4NHYh1sqKuDo+UoRkf8sFutOEkNsFlt2GUwoKW5mUjsGDh9Ctd/u4ZOlwtlej0+ycmBtb4BO7Zvh4DVLiQkBPFxcWhqbKRauehyBewNVkydPcvJeohk+so0Dpj2o+07J2ZmpvFgdhaObx3YuH49mumeTqdb6LJEIqHuxEOjVnPL6LdswYkT3TAfPgLDjnK0kud+vHAB9XX1VAIvX9VVVbyue4xGnhGzDXMGu79om5UJCUhOToaYapqelkYCdXAec2KvcQ8tI5ytrWhpaoKupBRRBJFDIpsKNkFNIEzsLWOLqcuMNjMjE6XFJRCSH4uKiqhuLZzyYG0t1n62Fh9RJ5kjNhcU4PN167hvme3eenrszUrooMGwE1/pSpFEr0ROB9UaNfabTCjcXEj12oBDtQfxRX4+PiVnlBQXLw6KNwTZBouUTw9/xOfj6bP91ZkfIykxkYgk2Fa2FUeJ1mazwWjcDZFQxJuw5LRh6SoUCqKSQ6P6AAlqDd9TqVT4eus2lJeXIzU1FV8WFiJOGcvT/t/xxQRer/jYOEpbC6VCSeWIgTJGgZSkVVDExCCS/pe+z4BlhxmBTBYNbcJKJCcmIS0lBbFKJQ+23AxddsCyywvCMkhYEE4mXVbwFQflxPovnsZUAAAAAElFTkSuQmCC"},"images":{"fallback":{"src":"/static/b358397f973ed74732db29698c1773d1/30cdc/blog.png","srcSet":"/static/b358397f973ed74732db29698c1773d1/7458e/blog.png 75w,\n/static/b358397f973ed74732db29698c1773d1/de3a1/blog.png 150w,\n/static/b358397f973ed74732db29698c1773d1/30cdc/blog.png 300w","sizes":"(min-width: 300px) 300px, 100vw"},"sources":[{"srcSet":"/static/b358397f973ed74732db29698c1773d1/eb54c/blog.avif 75w,\n/static/b358397f973ed74732db29698c1773d1/81307/blog.avif 150w,\n/static/b358397f973ed74732db29698c1773d1/aa5b9/blog.avif 300w","type":"image/avif","sizes":"(min-width: 300px) 300px, 100vw"},{"srcSet":"/static/b358397f973ed74732db29698c1773d1/18188/blog.webp 75w,\n/static/b358397f973ed74732db29698c1773d1/c65bc/blog.webp 150w,\n/static/b358397f973ed74732db29698c1773d1/078c3/blog.webp 300w","type":"image/webp","sizes":"(min-width: 300px) 300px, 100vw"}]},"width":300,"height":300}}}},"site":{"siteUrl":"https://www.codecave.it"}}},"staticQueryHashes":["2595676272","2708699711","639074693"],"slicesMap":{}} \ No newline at end of file diff --git a/page-data/blog/e173a2ae-ebb5-5219-9479-035dde5fe8c8/page-data.json b/page-data/blog/e173a2ae-ebb5-5219-9479-035dde5fe8c8/page-data.json new file mode 100644 index 00000000..7576a64c --- /dev/null +++ b/page-data/blog/e173a2ae-ebb5-5219-9479-035dde5fe8c8/page-data.json @@ -0,0 +1 @@ +{"componentChunkName":"component---src-pages-templates-post-tsx","path":"/blog/e173a2ae-ebb5-5219-9479-035dde5fe8c8/","result":{"data":{"markdownRemark":{"frontmatter":{"date":"20 Jun 2024","title":"Self-Hosted build Agent for Azure Pipelines","keywords":["devops","azure","self-hosted build agent"],"author":"Alina Podryabinkina","authorPosition":"DevOps Engineer","authorPhoto":{"childImageSharp":{"gatsbyImageData":{"layout":"constrained","placeholder":{"fallback":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAZCAIAAAC+dZmEAAAACXBIWXMAAAsTAAALEwEAmpwYAAAFbElEQVR42lWSiVPSaRjHf2ur8Du4BDVFVBRFKwhQDm/EEvFC8wKtPKFMbb0qNa0pa7dZK9NJrbTNjMQDvEIRFfHWwANrdmd3/5p90cmZnXnmnWfeeT7P9zvf94W2F/S7llG71bi/ajxYnfq2teDcMn/fnt+xjD6oLlKIwqVcZgSdFhXKyI7nNWtVzo0vf35dPNqaP9qagwC5uzjqWAHw1MHqtHPDDPhdy8i9UuVlfog8MjQ2IlAli72RlawQc/wphOJM2dflib8cy86NY9i+NL5nNRzYDIerkwerM0ebpu62G1mSiDxZZHbshfay3L0ZnU3XP/b8YVNJbiCNXJGv+LY9v79ugoCsfWnMsQz4cefa9NHmnG1qUJMRXZAcVZoZXyIXfuho+LY6t2cet09/WtX1lytTRGzGl+GXdusUUNYD0mGd2FsxHK5NH26Y+h/VZonCSjLitXmyluIUq67/X/um0zqzM/NpTf/utzqNJDzgj87mLfMotLvkUgbk/orBuTm7bhquzU/KFIaVZcbdLpB21V93Wk1/79gOlyftJr1V1/dAoxYE+rxs0W6a9ZB9eQzI7ruUJ452TLqedrWMV5jAqVMladNFpZdiOirU62MDh4vG7anhhcGu2vw0Mcv3WZ162TgIOZbH9q1AFqQ9aV8xPL5VcCU6ouZKbEdlelO+vDontfeXsjX9W+OrDo1CWiJPSLwYrohiv2ouN+v7oOOoJlye16ct4723smIq04S3M4Rv60u+z4/vzY5sTw475sYG2xvVSTFyTiifFSAXsF61li8aBqBjzwbHysTB+sybjtrKVEGjKlGTxJ3vevSPbeFoaXbPNLpj/GR+37P45kV3vYbD9Eu5GNTdVmmb/eiyDZQP1qbWvwzdLUq+nRffmB9XIeOPP2u1fXxt072xDfWujQzMvP593zDce6cmzJemFLJeP9Cumj6DwPQgs4ONmeHnd7SpvKai5NocSZmUO9n31DLUszLQYxnsGrxf8/lpy0LvswwxP4xOzYtmPdTmbC2MQl8X9Y4Vw7pp6Nfq7KoMYZNaWqMUpZzz62mtso0OTNfVW+qahrTlEz2PmkquYB7unCCvVB6jMl2ybRmDdiyfwcce6my8o0poUCVWZYk0qXw+w7Mgjmse7t6d1c8+eaBrqbt/s/gc0+8c0zfcjyIO8UrjBS2AtMEnmf7Q+bAy/V7J5XpV4nXZhauy86yzZAGLUadKN77rmhvp06iVVALK8CLTKQQGBePQKZJgb+NgJwRyetFY3KrJvFsmv6UU54hDc+PYdCoRQzEYD3sSMLoXze0nNwqZSKeRfQgonUzww/Ayfph18j3U3aYtlIvz5ZLGq7LSyxcVAmZKZLA3lUQhe8Iw9rM7zu2MO4ygBAwlIngiHkcjIAFUQjIvuLk8G+KFh1xgBxelRTcUSvNjwrPELCHbD4ExIpEMw+hJ4fEIgqCgA2aoGMI86wky5wbQoOCggEuxgsbrqTVKSY4oNCeG7e9FxsMoihIQBDshf6yAQVFQ2IuE+VJJ/jQKFMmNuJaV0K7NqJALipM4SfwQnAslAPH/k64Gh0dJKOpFxKgkAoVIgERcdnWxvK0sRaOILFFE+Xp5euBgMHcMY/Cx+Al8XCgRw8LoNLq3J9OPBkl47LabGfeK4huuJvEjmO4eMHB7MgpgcOJwMM5l2HWDwCA4LJxOpdMoPp5kKDdF+KQqtfmaVCo+jz91iD+VcvVgC8AQmIgiRLD6fKA3iofdPfBQvTrhcXmCMoGDYkTwJMdSP7DTqI9JF4wS8HhMEOZPIxGAR6ilUFyWygv090UQEoaQwBwMCg8Mn6Z1kpyrUATzwCHcUEagD9XtjMd/4LIQtzGUCroAAAAASUVORK5CYII="},"images":{"fallback":{"src":"/static/20f2a8d8398e868f0d50bd7fb356ffdb/c032f/author.jpg","srcSet":"/static/20f2a8d8398e868f0d50bd7fb356ffdb/1f64c/author.jpg 16w,\n/static/20f2a8d8398e868f0d50bd7fb356ffdb/af0fe/author.jpg 32w,\n/static/20f2a8d8398e868f0d50bd7fb356ffdb/c032f/author.jpg 64w,\n/static/20f2a8d8398e868f0d50bd7fb356ffdb/464e8/author.jpg 128w","sizes":"(min-width: 64px) 64px, 100vw"},"sources":[{"srcSet":"/static/20f2a8d8398e868f0d50bd7fb356ffdb/8cd5f/author.avif 16w,\n/static/20f2a8d8398e868f0d50bd7fb356ffdb/34a4f/author.avif 32w,\n/static/20f2a8d8398e868f0d50bd7fb356ffdb/d6ed5/author.avif 64w,\n/static/20f2a8d8398e868f0d50bd7fb356ffdb/8b866/author.avif 128w","type":"image/avif","sizes":"(min-width: 64px) 64px, 100vw"},{"srcSet":"/static/20f2a8d8398e868f0d50bd7fb356ffdb/94d43/author.webp 16w,\n/static/20f2a8d8398e868f0d50bd7fb356ffdb/6c901/author.webp 32w,\n/static/20f2a8d8398e868f0d50bd7fb356ffdb/aa76d/author.webp 64w,\n/static/20f2a8d8398e868f0d50bd7fb356ffdb/5e01a/author.webp 128w","type":"image/webp","sizes":"(min-width: 64px) 64px, 100vw"}]},"width":64,"height":80}}}},"html":"

Self-Hosted build Agent for Azure Pipelines

\n

Welcome to our guide to installing the Azure Agent\nIn this post, we'll cover the installation process, whether you're setting up a self-hosted agent for Azure Pipelines.

\n

\n \n \n

Configuring a self-hosted Agent might seem complicated but by following the below steps we can easily configure an agent in our Agent Pool.

\n

So, let's move step by step

\n

Step 1: Creating Agent Pool

\n

• Sign in to Microsoft Azure

\n

• Log in to your development project in DevOps (https://dev.azure.com/<your project name>).

\n

• Go to Project Settings -> Pipelines -> Agent Pools and click New Agent Pool.

\n

• Choose self-hosted Agent

\n

• Enter the agent name and click Create

\n

\n \n \n \n \n

\n

Step 2: Generate Personal Access Token (PAT)

\n

You need to go to the Personal Access Tokens section under User Settings located in the top right corner of your screen. Name it accordingly and grant permissions as per your requirements.

\n

\n \n \n \n \n

\n

\n \n \n \n \n

\n

If you have any questions, try following the instructions in this link - PAT key.

\n

Step 3: Check prerequisites

\n

Before you begin the installation process, please ensure that your system meets the requirements; links to official documentation are provided below.

\n

Linux

\n

Windows

\n

MacOS

\n

When it comes to safety, here are the basic principles:

\n

• Secure agent folders as they contain sensitive information.

\n

• Use the least required permissions for agent functionality.

\n

Step 4: Get The Agent

\n

Once the agent pool is created and PAT is generated, select the pool and click New Agent. In the new pop-up window, choose the operating system which you need and move forward accordingly.

\n

\n \n \n \n \n

\n

Step 5: Configure Agent

\n

We'll look at the Linux configuration as a guide; with other operating systems the steps will be similar.

\n

Once you've clicked \"Download\" or copied the URL, you'll need to log into your virtual machine.

\n

Create an agent folder and navigate to it using the following command:

\n
mkdir myagent && cd myagent
\n

Download the agent using the following command in case of Linux:

\n
wget https://vstsagentpackage.azureedge.net/agent/3.240.1/vsts-agent-linux-x64-3.240.1.tar.gz
\n

Unzip the contents using the following command:

\n
tar zxvf ./vsts-agent-linux-x64-3.240.1.tar.gz
\n

After extracting the contents, configure the agent using the command:

\n
./config.sh
\n

\n \n \n \n \n \nProvide the server URL: (https://dev.azure.com/<your project name>), PAT key and the agent pool name you created earlier, agent name and work folder.

\n

Once the agent is configured, it will show as below under your agent pool in Azure DevOps with red mark - Offline.

\n

You can run the agent interactively using this script:

\n
./run.sh
\n

it will bring your agent from Offline to Online.

\n

Once ./run.sh ends, our agent will go offline again and will not be available for deployments until we run it again.

\n

To eliminate unnecessary routine steps and have an agent that is always listening, we will configure it as a service.

\n

We can create a service using this script in your agent folder:

\n
./svc.sh install && ./svc.sh start
\n

Or create a service configuration file

\n
sudo nano /etc/systemd/system/agent.service
\n

Paste the following content into the file:

\n
[Unit]\nDescription=Azure-devops-agent-ubuntu service\n\n[Service]\nUser=<your username>\nExecStart=/path/to/your/agent/run.sh\nRestart=always\n\n[Install]\nWantedBy=multi-user.target
\n

Replace <your username> and /path/to/your/agent/run.sh with your details.

\n

After saving the file, activate and start the service:

\n
sudo systemctl daemon-reload\nsudo systemctl enable agent.service\nsudo systemctl start agent.service\nsudo systemctl status agent.service
\n

The service for your Azure agent is now activated and will run continuously and will be available to take build tasks now!

\n

Final Thoughts

\n

Whether you are using Windows, Linux or MacOS, installing the Azure Agent is an important step in automating your build and deployment processes. By following detailed instructions for each operating system, you can ensure seamless and secure integration with Azure services.

\n

We hope this detailed guide was helpful to you. If you have questions or need more help, please refer to the official Azure documentation.

","wordCount":{"words":763}}},"pageContext":{"id":"e173a2ae-ebb5-5219-9479-035dde5fe8c8","lang":"en","markupData":{"bannerTitle":"Well unknown facts","head":"CodeCave Blog","readPostLink":"Open article","readingTimeTitle":"Reading time","readingTimeUnits":"m","postFooterTitle":"Congratulations! Now you can show off with your new knowledge!","postFooterText":"If you want us to uncover some other Well unknown facts, you can contact us via the socials or e-mail below. See you!","sharePostTitle":"Share this post","readMoreOnTopicTitle":"Read more on","blogSectionTitle":"new in our blog","blogSectionLinkTitle":"all posts","image":{"childImageSharp":{"gatsbyImageData":{"layout":"constrained","placeholder":{"fallback":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAACXBIWXMAAAsTAAALEwEAmpwYAAAD1UlEQVR42pWUX0zTVxTHCwT501JKaWmBrsUV5N9gIixsuqgwlDCge7Hooli0yp9ZRR+0BdryxxU7oVCQgC3Kn1IMf0S3xLlMI2Mapw+a6JMGX9yMe3EPbvoimHw99xJJnIPpw82vub33ez7nnO89gqioKLzLkkqlkMvliI6O5r+XOid4FzEmFBkZiaCgIISFhSEiIoKLMvH3EnxNFRwcDI1GA4vFgry8PHyo1UIsFkMoFEImk71BvKQgOygSibiYXl+Ge/fu4+X8PC5f+hkOhwOmfSZkrc7ixOHh4Yu0gv+iYt+AgABotYnw+/2Ym5vDo0e/49zUJI47nejr7cXQ4BDcnW7UVNcgOzsbK1aEcGrBv6lYtNDQUOytrMTjx3/i+fNnuHv3DsbHx+AbHibRKTTa7XC1tWNsbAxdbjfG6Wsxm6GKVy0IMiGGHBgYiKysNbh48SeieoHZ2fu4dvVXDA0MwNXeDk9fH/wjI7h58wbOjI7CcsSMbncXBgdOw+v1ID09HQKWIqsD66KZojx58hf++fspZn6ZRmdHB4YHB9F+vA1ej4eo2jjZMUcrJscniK6LU/d0d6PJ3rggyCyQm5uLW7duY36eavXHQ/zw/Xn0e7041d/Pa+Y96eE0vmEfJicmUF1ZBVPNN+jt6eGp7qqoQN6GjdwJnDAjI4NHYh1sqKuDo+UoRkf8sFutOEkNsFlt2GUwoKW5mUjsGDh9Ctd/u4ZOlwtlej0+ycmBtb4BO7Zvh4DVLiQkBPFxcWhqbKRauehyBewNVkydPcvJeohk+so0Dpj2o+07J2ZmpvFgdhaObx3YuH49mumeTqdb6LJEIqHuxEOjVnPL6LdswYkT3TAfPgLDjnK0kud+vHAB9XX1VAIvX9VVVbyue4xGnhGzDXMGu79om5UJCUhOToaYapqelkYCdXAec2KvcQ8tI5ytrWhpaoKupBRRBJFDIpsKNkFNIEzsLWOLqcuMNjMjE6XFJRCSH4uKiqhuLZzyYG0t1n62Fh9RJ5kjNhcU4PN167hvme3eenrszUrooMGwE1/pSpFEr0ROB9UaNfabTCjcXEj12oBDtQfxRX4+PiVnlBQXLw6KNwTZBouUTw9/xOfj6bP91ZkfIykxkYgk2Fa2FUeJ1mazwWjcDZFQxJuw5LRh6SoUCqKSQ6P6AAlqDd9TqVT4eus2lJeXIzU1FV8WFiJOGcvT/t/xxQRer/jYOEpbC6VCSeWIgTJGgZSkVVDExCCS/pe+z4BlhxmBTBYNbcJKJCcmIS0lBbFKJQ+23AxddsCyywvCMkhYEE4mXVbwFQflxPovnsZUAAAAAElFTkSuQmCC"},"images":{"fallback":{"src":"/static/b358397f973ed74732db29698c1773d1/30cdc/blog.png","srcSet":"/static/b358397f973ed74732db29698c1773d1/7458e/blog.png 75w,\n/static/b358397f973ed74732db29698c1773d1/de3a1/blog.png 150w,\n/static/b358397f973ed74732db29698c1773d1/30cdc/blog.png 300w","sizes":"(min-width: 300px) 300px, 100vw"},"sources":[{"srcSet":"/static/b358397f973ed74732db29698c1773d1/eb54c/blog.avif 75w,\n/static/b358397f973ed74732db29698c1773d1/81307/blog.avif 150w,\n/static/b358397f973ed74732db29698c1773d1/aa5b9/blog.avif 300w","type":"image/avif","sizes":"(min-width: 300px) 300px, 100vw"},{"srcSet":"/static/b358397f973ed74732db29698c1773d1/18188/blog.webp 75w,\n/static/b358397f973ed74732db29698c1773d1/c65bc/blog.webp 150w,\n/static/b358397f973ed74732db29698c1773d1/078c3/blog.webp 300w","type":"image/webp","sizes":"(min-width: 300px) 300px, 100vw"}]},"width":300,"height":300}}}},"site":{"siteUrl":"https://www.codecave.it"}}},"staticQueryHashes":["2595676272","2708699711","639074693"],"slicesMap":{}} \ No newline at end of file diff --git a/page-data/blog/page-data.json b/page-data/blog/page-data.json index a17bb36b..f49ce7dd 100644 --- a/page-data/blog/page-data.json +++ b/page-data/blog/page-data.json @@ -1 +1 @@ -{"componentChunkName":"component---src-pages-templates-blog-tsx","path":"/blog/","result":{"data":{"allMarkdownRemark":{"nodes":[{"id":"91d98aad-6ec6-5e71-b6ca-daff730c0ca4","frontmatter":{"date":"12 Jun 2023","title":"Awesome post 6","text":"Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source. Lorem Ipsum comes from sections 1.10.32 and 1.10.33 of \"de Finibus Bonorum et Malorum\" (The Extremes of Good and Evil) by Cicero, written in 45 BC. This book is a treatise on the theory of ethics, very popular during the Renaissance. The first line of Lorem Ipsum, \"Lorem ipsum dolor sit amet..\", comes from a line in section 1.10.32.","cover":{"childImageSharp":{"gatsbyImageData":{"layout":"constrained","placeholder":{"fallback":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAPCAYAAADkmO9VAAAACXBIWXMAAAsTAAALEwEAmpwYAAACPklEQVR42o1U227TQBDNf/HAl/WJZ15A6h+AWgoChESFqpDSNiRcSsJFApI0jUnT3Hy3d+31JYeZdUIiU0otrdZezZxz5sysK3aY4KbLDBLM/etjKlcdWledEVgUp8jSFI64IaArEx0sVZHkyhR+nCEkoDzPUetGuN/w8HHuQUSpJuacfwOKVJfUOI8w8xWEysBPEOd6v3sU4Nb2HE1DQhAJW1BWW1mVw7tHiqZegp12iEtXIUoKwK0DiXt1gQs3w4NPoSZdAfHulAElsbliHeTLpWdJjrHp4eDLFD+nMXy1QJZlcDVQYYtHsSZ9z/wNwGffiN1RCMmXVVPMgBUuMJ6YsGYW+bqgxIwAMkxIPfvLJbOY1jDCQ1LONlSYpdqRGBGgL9dKGTBOF+jaFr7OTNgU7MUR2oaDgbWuYmXTuaV0rlYo4uQPkBMW73weqRzb0wFu96rYcQZ47Bg4mUwRiBy2WDWyWJ7YKJml86FmDQtfxp7C236Il40uDNeEQgqRJWiNJMZUMiuzl7F/dZnBhrbSsrXJNDJNQ2H/9BeevBviUVthtx2jMYhx0rHJ7xgBAc6IdF4anYq1NPb4LMJzak5KN8Eg4GpH4JTM3mt52HpxiTuvLOz/iHRHuYqYhr9+LrH3OdTvZlAabA7i+WK13KCjnsAbItmttvG0+h7N7xcYWpFunLVUxaMyckoKy3fRWXpa7wscdgVqPYnDfoLaWawt2UzebOC1PwdeH+h61QiQlb7uhDTYkfbX+s8f6Td8JW7ht0aWRwAAAABJRU5ErkJggg=="},"images":{"fallback":{"src":"/static/e89878735987983b99492d885250d035/60da4/blogCover.png","srcSet":"/static/e89878735987983b99492d885250d035/17981/blogCover.png 150w,\n/static/e89878735987983b99492d885250d035/e9a60/blogCover.png 300w,\n/static/e89878735987983b99492d885250d035/60da4/blogCover.png 600w,\n/static/e89878735987983b99492d885250d035/a3486/blogCover.png 1200w","sizes":"(min-width: 600px) 600px, 100vw"},"sources":[{"srcSet":"/static/e89878735987983b99492d885250d035/e625e/blogCover.avif 150w,\n/static/e89878735987983b99492d885250d035/2574e/blogCover.avif 300w,\n/static/e89878735987983b99492d885250d035/d3834/blogCover.avif 600w,\n/static/e89878735987983b99492d885250d035/387a3/blogCover.avif 1200w","type":"image/avif","sizes":"(min-width: 600px) 600px, 100vw"},{"srcSet":"/static/e89878735987983b99492d885250d035/e80bb/blogCover.webp 150w,\n/static/e89878735987983b99492d885250d035/a8059/blogCover.webp 300w,\n/static/e89878735987983b99492d885250d035/9a858/blogCover.webp 600w,\n/static/e89878735987983b99492d885250d035/c3710/blogCover.webp 1200w","type":"image/webp","sizes":"(min-width: 600px) 600px, 100vw"}]},"width":600,"height":450}}}},"wordCount":{"words":707}},{"id":"1f201db1-7d1d-5ef0-b138-fe7b3dc57ba8","frontmatter":{"date":"11 Jun 2023","title":"Awesome post 5","text":"Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source. Lorem Ipsum comes from sections 1.10.32 and 1.10.33 of \"de Finibus Bonorum et Malorum\" (The Extremes of Good and Evil) by Cicero, written in 45 BC. This book is a treatise on the theory of ethics, very popular during the Renaissance. The first line of Lorem Ipsum, \"Lorem ipsum dolor sit amet..\", comes from a line in section 1.10.32.","cover":{"childImageSharp":{"gatsbyImageData":{"layout":"constrained","placeholder":{"fallback":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAPCAYAAADkmO9VAAAACXBIWXMAAAsTAAALEwEAmpwYAAACPklEQVR42o1U227TQBDNf/HAl/WJZ15A6h+AWgoChESFqpDSNiRcSsJFApI0jUnT3Hy3d+31JYeZdUIiU0otrdZezZxz5sysK3aY4KbLDBLM/etjKlcdWledEVgUp8jSFI64IaArEx0sVZHkyhR+nCEkoDzPUetGuN/w8HHuQUSpJuacfwOKVJfUOI8w8xWEysBPEOd6v3sU4Nb2HE1DQhAJW1BWW1mVw7tHiqZegp12iEtXIUoKwK0DiXt1gQs3w4NPoSZdAfHulAElsbliHeTLpWdJjrHp4eDLFD+nMXy1QJZlcDVQYYtHsSZ9z/wNwGffiN1RCMmXVVPMgBUuMJ6YsGYW+bqgxIwAMkxIPfvLJbOY1jDCQ1LONlSYpdqRGBGgL9dKGTBOF+jaFr7OTNgU7MUR2oaDgbWuYmXTuaV0rlYo4uQPkBMW73weqRzb0wFu96rYcQZ47Bg4mUwRiBy2WDWyWJ7YKJml86FmDQtfxp7C236Il40uDNeEQgqRJWiNJMZUMiuzl7F/dZnBhrbSsrXJNDJNQ2H/9BeevBviUVthtx2jMYhx0rHJ7xgBAc6IdF4anYq1NPb4LMJzak5KN8Eg4GpH4JTM3mt52HpxiTuvLOz/iHRHuYqYhr9+LrH3OdTvZlAabA7i+WK13KCjnsAbItmttvG0+h7N7xcYWpFunLVUxaMyckoKy3fRWXpa7wscdgVqPYnDfoLaWawt2UzebOC1PwdeH+h61QiQlb7uhDTYkfbX+s8f6Td8JW7ht0aWRwAAAABJRU5ErkJggg=="},"images":{"fallback":{"src":"/static/e89878735987983b99492d885250d035/60da4/blogCover.png","srcSet":"/static/e89878735987983b99492d885250d035/17981/blogCover.png 150w,\n/static/e89878735987983b99492d885250d035/e9a60/blogCover.png 300w,\n/static/e89878735987983b99492d885250d035/60da4/blogCover.png 600w,\n/static/e89878735987983b99492d885250d035/a3486/blogCover.png 1200w","sizes":"(min-width: 600px) 600px, 100vw"},"sources":[{"srcSet":"/static/e89878735987983b99492d885250d035/e625e/blogCover.avif 150w,\n/static/e89878735987983b99492d885250d035/2574e/blogCover.avif 300w,\n/static/e89878735987983b99492d885250d035/d3834/blogCover.avif 600w,\n/static/e89878735987983b99492d885250d035/387a3/blogCover.avif 1200w","type":"image/avif","sizes":"(min-width: 600px) 600px, 100vw"},{"srcSet":"/static/e89878735987983b99492d885250d035/e80bb/blogCover.webp 150w,\n/static/e89878735987983b99492d885250d035/a8059/blogCover.webp 300w,\n/static/e89878735987983b99492d885250d035/9a858/blogCover.webp 600w,\n/static/e89878735987983b99492d885250d035/c3710/blogCover.webp 1200w","type":"image/webp","sizes":"(min-width: 600px) 600px, 100vw"}]},"width":600,"height":450}}}},"wordCount":{"words":614}},{"id":"f7437acb-56dc-5ec6-9370-7726f39da57a","frontmatter":{"date":"10 Jun 2023","title":"Awesome post 4","text":"Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source. Lorem Ipsum comes from sections 1.10.32 and 1.10.33 of \"de Finibus Bonorum et Malorum\" (The Extremes of Good and Evil) by Cicero, written in 45 BC. This book is a treatise on the theory of ethics, very popular during the Renaissance. The first line of Lorem Ipsum, \"Lorem ipsum dolor sit amet..\", comes from a line in section 1.10.32.","cover":{"childImageSharp":{"gatsbyImageData":{"layout":"constrained","placeholder":{"fallback":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAPCAYAAADkmO9VAAAACXBIWXMAAAsTAAALEwEAmpwYAAACPklEQVR42o1U227TQBDNf/HAl/WJZ15A6h+AWgoChESFqpDSNiRcSsJFApI0jUnT3Hy3d+31JYeZdUIiU0otrdZezZxz5sysK3aY4KbLDBLM/etjKlcdWledEVgUp8jSFI64IaArEx0sVZHkyhR+nCEkoDzPUetGuN/w8HHuQUSpJuacfwOKVJfUOI8w8xWEysBPEOd6v3sU4Nb2HE1DQhAJW1BWW1mVw7tHiqZegp12iEtXIUoKwK0DiXt1gQs3w4NPoSZdAfHulAElsbliHeTLpWdJjrHp4eDLFD+nMXy1QJZlcDVQYYtHsSZ9z/wNwGffiN1RCMmXVVPMgBUuMJ6YsGYW+bqgxIwAMkxIPfvLJbOY1jDCQ1LONlSYpdqRGBGgL9dKGTBOF+jaFr7OTNgU7MUR2oaDgbWuYmXTuaV0rlYo4uQPkBMW73weqRzb0wFu96rYcQZ47Bg4mUwRiBy2WDWyWJ7YKJml86FmDQtfxp7C236Il40uDNeEQgqRJWiNJMZUMiuzl7F/dZnBhrbSsrXJNDJNQ2H/9BeevBviUVthtx2jMYhx0rHJ7xgBAc6IdF4anYq1NPb4LMJzak5KN8Eg4GpH4JTM3mt52HpxiTuvLOz/iHRHuYqYhr9+LrH3OdTvZlAabA7i+WK13KCjnsAbItmttvG0+h7N7xcYWpFunLVUxaMyckoKy3fRWXpa7wscdgVqPYnDfoLaWawt2UzebOC1PwdeH+h61QiQlb7uhDTYkfbX+s8f6Td8JW7ht0aWRwAAAABJRU5ErkJggg=="},"images":{"fallback":{"src":"/static/e89878735987983b99492d885250d035/60da4/blogCover.png","srcSet":"/static/e89878735987983b99492d885250d035/17981/blogCover.png 150w,\n/static/e89878735987983b99492d885250d035/e9a60/blogCover.png 300w,\n/static/e89878735987983b99492d885250d035/60da4/blogCover.png 600w,\n/static/e89878735987983b99492d885250d035/a3486/blogCover.png 1200w","sizes":"(min-width: 600px) 600px, 100vw"},"sources":[{"srcSet":"/static/e89878735987983b99492d885250d035/e625e/blogCover.avif 150w,\n/static/e89878735987983b99492d885250d035/2574e/blogCover.avif 300w,\n/static/e89878735987983b99492d885250d035/d3834/blogCover.avif 600w,\n/static/e89878735987983b99492d885250d035/387a3/blogCover.avif 1200w","type":"image/avif","sizes":"(min-width: 600px) 600px, 100vw"},{"srcSet":"/static/e89878735987983b99492d885250d035/e80bb/blogCover.webp 150w,\n/static/e89878735987983b99492d885250d035/a8059/blogCover.webp 300w,\n/static/e89878735987983b99492d885250d035/9a858/blogCover.webp 600w,\n/static/e89878735987983b99492d885250d035/c3710/blogCover.webp 1200w","type":"image/webp","sizes":"(min-width: 600px) 600px, 100vw"}]},"width":600,"height":450}}}},"wordCount":{"words":610}},{"id":"aa06b558-51ae-5f78-9989-0baadffbbc36","frontmatter":{"date":"08 Jun 2023","title":"Awesome post 2","text":"Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source. Lorem Ipsum comes from sections 1.10.32 and 1.10.33 of \"de Finibus Bonorum et Malorum\" (The Extremes of Good and Evil) by Cicero, written in 45 BC. This book is a treatise on the theory of ethics, very popular during the Renaissance. The first line of Lorem Ipsum, \"Lorem ipsum dolor sit amet..\", comes from a line in section 1.10.32.","cover":{"childImageSharp":{"gatsbyImageData":{"layout":"constrained","placeholder":{"fallback":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAPCAYAAADkmO9VAAAACXBIWXMAAAsTAAALEwEAmpwYAAACPklEQVR42o1U227TQBDNf/HAl/WJZ15A6h+AWgoChESFqpDSNiRcSsJFApI0jUnT3Hy3d+31JYeZdUIiU0otrdZezZxz5sysK3aY4KbLDBLM/etjKlcdWledEVgUp8jSFI64IaArEx0sVZHkyhR+nCEkoDzPUetGuN/w8HHuQUSpJuacfwOKVJfUOI8w8xWEysBPEOd6v3sU4Nb2HE1DQhAJW1BWW1mVw7tHiqZegp12iEtXIUoKwK0DiXt1gQs3w4NPoSZdAfHulAElsbliHeTLpWdJjrHp4eDLFD+nMXy1QJZlcDVQYYtHsSZ9z/wNwGffiN1RCMmXVVPMgBUuMJ6YsGYW+bqgxIwAMkxIPfvLJbOY1jDCQ1LONlSYpdqRGBGgL9dKGTBOF+jaFr7OTNgU7MUR2oaDgbWuYmXTuaV0rlYo4uQPkBMW73weqRzb0wFu96rYcQZ47Bg4mUwRiBy2WDWyWJ7YKJml86FmDQtfxp7C236Il40uDNeEQgqRJWiNJMZUMiuzl7F/dZnBhrbSsrXJNDJNQ2H/9BeevBviUVthtx2jMYhx0rHJ7xgBAc6IdF4anYq1NPb4LMJzak5KN8Eg4GpH4JTM3mt52HpxiTuvLOz/iHRHuYqYhr9+LrH3OdTvZlAabA7i+WK13KCjnsAbItmttvG0+h7N7xcYWpFunLVUxaMyckoKy3fRWXpa7wscdgVqPYnDfoLaWawt2UzebOC1PwdeH+h61QiQlb7uhDTYkfbX+s8f6Td8JW7ht0aWRwAAAABJRU5ErkJggg=="},"images":{"fallback":{"src":"/static/e89878735987983b99492d885250d035/60da4/blogCover.png","srcSet":"/static/e89878735987983b99492d885250d035/17981/blogCover.png 150w,\n/static/e89878735987983b99492d885250d035/e9a60/blogCover.png 300w,\n/static/e89878735987983b99492d885250d035/60da4/blogCover.png 600w,\n/static/e89878735987983b99492d885250d035/a3486/blogCover.png 1200w","sizes":"(min-width: 600px) 600px, 100vw"},"sources":[{"srcSet":"/static/e89878735987983b99492d885250d035/e625e/blogCover.avif 150w,\n/static/e89878735987983b99492d885250d035/2574e/blogCover.avif 300w,\n/static/e89878735987983b99492d885250d035/d3834/blogCover.avif 600w,\n/static/e89878735987983b99492d885250d035/387a3/blogCover.avif 1200w","type":"image/avif","sizes":"(min-width: 600px) 600px, 100vw"},{"srcSet":"/static/e89878735987983b99492d885250d035/e80bb/blogCover.webp 150w,\n/static/e89878735987983b99492d885250d035/a8059/blogCover.webp 300w,\n/static/e89878735987983b99492d885250d035/9a858/blogCover.webp 600w,\n/static/e89878735987983b99492d885250d035/c3710/blogCover.webp 1200w","type":"image/webp","sizes":"(min-width: 600px) 600px, 100vw"}]},"width":600,"height":450}}}},"wordCount":{"words":129}},{"id":"6a129001-a171-5d7e-9555-a943ae9d624f","frontmatter":{"date":"07 Jun 2023","title":"Awesome post 3","text":"Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source. Lorem Ipsum comes from sections 1.10.32 and 1.10.33 of \"de Finibus Bonorum et Malorum\" (The Extremes of Good and Evil) by Cicero, written in 45 BC. This book is a treatise on the theory of ethics, very popular during the Renaissance. The first line of Lorem Ipsum, \"Lorem ipsum dolor sit amet..\", comes from a line in section 1.10.32.","cover":{"childImageSharp":{"gatsbyImageData":{"layout":"constrained","placeholder":{"fallback":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAPCAYAAADkmO9VAAAACXBIWXMAAAsTAAALEwEAmpwYAAACPklEQVR42o1U227TQBDNf/HAl/WJZ15A6h+AWgoChESFqpDSNiRcSsJFApI0jUnT3Hy3d+31JYeZdUIiU0otrdZezZxz5sysK3aY4KbLDBLM/etjKlcdWledEVgUp8jSFI64IaArEx0sVZHkyhR+nCEkoDzPUetGuN/w8HHuQUSpJuacfwOKVJfUOI8w8xWEysBPEOd6v3sU4Nb2HE1DQhAJW1BWW1mVw7tHiqZegp12iEtXIUoKwK0DiXt1gQs3w4NPoSZdAfHulAElsbliHeTLpWdJjrHp4eDLFD+nMXy1QJZlcDVQYYtHsSZ9z/wNwGffiN1RCMmXVVPMgBUuMJ6YsGYW+bqgxIwAMkxIPfvLJbOY1jDCQ1LONlSYpdqRGBGgL9dKGTBOF+jaFr7OTNgU7MUR2oaDgbWuYmXTuaV0rlYo4uQPkBMW73weqRzb0wFu96rYcQZ47Bg4mUwRiBy2WDWyWJ7YKJml86FmDQtfxp7C236Il40uDNeEQgqRJWiNJMZUMiuzl7F/dZnBhrbSsrXJNDJNQ2H/9BeevBviUVthtx2jMYhx0rHJ7xgBAc6IdF4anYq1NPb4LMJzak5KN8Eg4GpH4JTM3mt52HpxiTuvLOz/iHRHuYqYhr9+LrH3OdTvZlAabA7i+WK13KCjnsAbItmttvG0+h7N7xcYWpFunLVUxaMyckoKy3fRWXpa7wscdgVqPYnDfoLaWawt2UzebOC1PwdeH+h61QiQlb7uhDTYkfbX+s8f6Td8JW7ht0aWRwAAAABJRU5ErkJggg=="},"images":{"fallback":{"src":"/static/e89878735987983b99492d885250d035/60da4/blogCover.png","srcSet":"/static/e89878735987983b99492d885250d035/17981/blogCover.png 150w,\n/static/e89878735987983b99492d885250d035/e9a60/blogCover.png 300w,\n/static/e89878735987983b99492d885250d035/60da4/blogCover.png 600w,\n/static/e89878735987983b99492d885250d035/a3486/blogCover.png 1200w","sizes":"(min-width: 600px) 600px, 100vw"},"sources":[{"srcSet":"/static/e89878735987983b99492d885250d035/e625e/blogCover.avif 150w,\n/static/e89878735987983b99492d885250d035/2574e/blogCover.avif 300w,\n/static/e89878735987983b99492d885250d035/d3834/blogCover.avif 600w,\n/static/e89878735987983b99492d885250d035/387a3/blogCover.avif 1200w","type":"image/avif","sizes":"(min-width: 600px) 600px, 100vw"},{"srcSet":"/static/e89878735987983b99492d885250d035/e80bb/blogCover.webp 150w,\n/static/e89878735987983b99492d885250d035/a8059/blogCover.webp 300w,\n/static/e89878735987983b99492d885250d035/9a858/blogCover.webp 600w,\n/static/e89878735987983b99492d885250d035/c3710/blogCover.webp 1200w","type":"image/webp","sizes":"(min-width: 600px) 600px, 100vw"}]},"width":600,"height":450}}}},"wordCount":{"words":129}}]}},"pageContext":{"limit":5,"skip":0,"pagesQuantity":2,"currentPage":1,"lang":"en","markupData":{"bannerTitle":"Well unknown facts","head":"CodeCave Blog","readPostLink":"Open article","readingTimeTitle":"Reading time","readingTimeUnits":"m","postFooterTitle":"Congratulations! Now you can show off with your new knowledge!","postFooterText":"If you want us to uncover some other Well unknown facts, you can contact us via the socials or e-mail below. See you!","sharePostTitle":"Share this post","readMoreOnTopicTitle":"Read more on","blogSectionTitle":"new in our blog","blogSectionLinkTitle":"all posts","image":{"childImageSharp":{"gatsbyImageData":{"layout":"constrained","placeholder":{"fallback":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAACXBIWXMAAAsTAAALEwEAmpwYAAAD1UlEQVR42pWUX0zTVxTHCwT501JKaWmBrsUV5N9gIixsuqgwlDCge7Hooli0yp9ZRR+0BdryxxU7oVCQgC3Kn1IMf0S3xLlMI2Mapw+a6JMGX9yMe3EPbvoimHw99xJJnIPpw82vub33ez7nnO89gqioKLzLkkqlkMvliI6O5r+XOid4FzEmFBkZiaCgIISFhSEiIoKLMvH3EnxNFRwcDI1GA4vFgry8PHyo1UIsFkMoFEImk71BvKQgOygSibiYXl+Ge/fu4+X8PC5f+hkOhwOmfSZkrc7ixOHh4Yu0gv+iYt+AgABotYnw+/2Ym5vDo0e/49zUJI47nejr7cXQ4BDcnW7UVNcgOzsbK1aEcGrBv6lYtNDQUOytrMTjx3/i+fNnuHv3DsbHx+AbHibRKTTa7XC1tWNsbAxdbjfG6Wsxm6GKVy0IMiGGHBgYiKysNbh48SeieoHZ2fu4dvVXDA0MwNXeDk9fH/wjI7h58wbOjI7CcsSMbncXBgdOw+v1ID09HQKWIqsD66KZojx58hf++fspZn6ZRmdHB4YHB9F+vA1ej4eo2jjZMUcrJscniK6LU/d0d6PJ3rggyCyQm5uLW7duY36eavXHQ/zw/Xn0e7041d/Pa+Y96eE0vmEfJicmUF1ZBVPNN+jt6eGp7qqoQN6GjdwJnDAjI4NHYh1sqKuDo+UoRkf8sFutOEkNsFlt2GUwoKW5mUjsGDh9Ctd/u4ZOlwtlej0+ycmBtb4BO7Zvh4DVLiQkBPFxcWhqbKRauehyBewNVkydPcvJeohk+so0Dpj2o+07J2ZmpvFgdhaObx3YuH49mumeTqdb6LJEIqHuxEOjVnPL6LdswYkT3TAfPgLDjnK0kud+vHAB9XX1VAIvX9VVVbyue4xGnhGzDXMGu79om5UJCUhOToaYapqelkYCdXAec2KvcQ8tI5ytrWhpaoKupBRRBJFDIpsKNkFNIEzsLWOLqcuMNjMjE6XFJRCSH4uKiqhuLZzyYG0t1n62Fh9RJ5kjNhcU4PN167hvme3eenrszUrooMGwE1/pSpFEr0ROB9UaNfabTCjcXEj12oBDtQfxRX4+PiVnlBQXLw6KNwTZBouUTw9/xOfj6bP91ZkfIykxkYgk2Fa2FUeJ1mazwWjcDZFQxJuw5LRh6SoUCqKSQ6P6AAlqDd9TqVT4eus2lJeXIzU1FV8WFiJOGcvT/t/xxQRer/jYOEpbC6VCSeWIgTJGgZSkVVDExCCS/pe+z4BlhxmBTBYNbcJKJCcmIS0lBbFKJQ+23AxddsCyywvCMkhYEE4mXVbwFQflxPovnsZUAAAAAElFTkSuQmCC"},"images":{"fallback":{"src":"/static/b358397f973ed74732db29698c1773d1/30cdc/blog.png","srcSet":"/static/b358397f973ed74732db29698c1773d1/7458e/blog.png 75w,\n/static/b358397f973ed74732db29698c1773d1/de3a1/blog.png 150w,\n/static/b358397f973ed74732db29698c1773d1/30cdc/blog.png 300w","sizes":"(min-width: 300px) 300px, 100vw"},"sources":[{"srcSet":"/static/b358397f973ed74732db29698c1773d1/eb54c/blog.avif 75w,\n/static/b358397f973ed74732db29698c1773d1/81307/blog.avif 150w,\n/static/b358397f973ed74732db29698c1773d1/aa5b9/blog.avif 300w","type":"image/avif","sizes":"(min-width: 300px) 300px, 100vw"},{"srcSet":"/static/b358397f973ed74732db29698c1773d1/18188/blog.webp 75w,\n/static/b358397f973ed74732db29698c1773d1/c65bc/blog.webp 150w,\n/static/b358397f973ed74732db29698c1773d1/078c3/blog.webp 300w","type":"image/webp","sizes":"(min-width: 300px) 300px, 100vw"}]},"width":300,"height":300}}}},"pagination":{"next":"Next page"},"site":{"siteUrl":"https://www.codecave.it"}}},"staticQueryHashes":["2595676272","2708699711"],"slicesMap":{}} \ No newline at end of file +{"componentChunkName":"component---src-pages-templates-blog-tsx","path":"/blog/","result":{"data":{"allMarkdownRemark":{"nodes":[{"id":"c924c93c-fac0-517e-92e7-c5b5aaa083c2","frontmatter":{"date":"21 Jun 2024","title":"Proxmox VM Templates and Cloud-Init","text":"In the world of virtualization, efficiency and automation are key. That's where Proxmox Virtual Environment (VE) comes into play, offering a robust solution for managing virtual machines (VMs) with ease. One of the most powerful features of Proxmox is its ability to use VM templates in conjunction with Cloud-Init, streamlining the deployment process and making it as smooth as a cloud....","cover":{"childImageSharp":{"gatsbyImageData":{"layout":"constrained","placeholder":{"fallback":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAIAAAAC64paAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAEz0lEQVR42gHEBDv7AAULGQUNHgQQIQIRJAIVKgQgOAYoQQcvSwk0UQw3UQ4+Wgs2UQ05VAovSQUfNQQYLQMTJQQPHwUNHAULGAAEDBwDDyACFioIMEsMP1wOP1sPRGIfcJEtkbEaXXsyi6gueZcaVnURT24FMUwFKkQEHzUDFikDDyAFDBsAAxIlBCA2AR00GGSEMZu8Glt5J2mHTJy4csDYgrfJmsPSqMvXkLjGaqS6RIaiJXKSBilDAxwyAxUpAw4fAAMYLAYuSggzTyZdekl/mF2InICis6S/yrDEztDf493q7dTj58/f48LT2ZGttz5ofRlYeA5HZgQdNAMSJAADGC4KMEsRUXFahpxzjp5vgZCHm6mrv8movMacsbuZr7ZxiJJbdYBNaHQ5TVsePFAviKgle50EJ0IDGCwABSM8KFt4KmyIOn6bOmV8Q2FzTmZ4PVVqO1ZsJDtNMU5fJkNUL0xbPWFxMllvR3CITZKsIGF+HEpmBCE4AAozTh9uj1aXsYOvwCBFWhEjMiM+Ux88VC1PZSA4SzFRZilKXy5NYjxngSVegXOPobrZ4UaRrSZkghM2UAANPlozd5W11N7E1dk7Y3gaLkArSWAjTGgrSmIeOU8mUGsjUm0qVnA2dpgnapBriZrG2N2iy9kxdZMUQ14AP3SPrMnWrL/Fgp6qYoWWPVVmIEJcH1h3KFFuG0RgH1NzIF6AJmmNM4qzKnabobrHtMzUtsnQnb/NK155AFKAl561vJauto6nsHSSn1t2hSBIZR1ghCZbfRtXeh1egx9tlCh4oTKNtSJihpGsubrQ2Ki+xqa8w0hzigA4aYKmvcW5zNGjucE7U2QmSGEfSGYcYYclZoobY4kbaZMea5Ahc58uirRJgaGlwtCsx9K4zNOrwspEcokAh6a1rb7CfpmkaomYSGBwFig9HElsInScIGWMFlZ8FVuFElaALH2jXbPVgrnSbpivWYKYf5ynvs/UdJaoAFF3iXeToZCps3yVolVzhBcnORFIbhZsmxphjDB5nzx1lz6Krz12mypegkx5lWmUqousvIyntGeDkFN4iQBJbX6uwMaOpq9oh5dUd4xshZR7q8BYrM4aXYdDi7BGc5FRfZh/qLxih55Re5KoyNa/1d3V5el2jJkoTF8AVnuMiqSvYoKTXH6QZYSWhKa2iqu7td3qj7bKRW2LI0hlUH+YosXUtM3XvdXfqsbTcpOjlrC5t8nQQGV5ACJIXB01SBwyRkdkd4qns1V1iF6BlIOjs73Y4n2brStScJrA0o+uvoSjsbvQ18DT2WF9jFBtfm2IlTBXawAZPlMnRVUkPEsvR1dcfI9ig5VZfpJ+oLB9nq1McolGdJF/prt3malpiJqNp7O70ddVZXIACRkcNkYcQlgACixDIklfOl9yQmRzGS9BEyI2Fyc4HTFEL0hbb4+gMl13ETJOM1NpPmF2Ql9xTGZ1MExeGjVHLUtdEzVMAAMgNQwvRh1EWjNabidEVQsdLwQYLQMbMh08U0ptgEx5jw4nPgIIFhUjMgkPHQwdLTFXaSRNZA8zSQUhNgACFigDHzUJLEMVOlIhSV4aPlQKOVQMN1EjUGhAcYlJeI0pUmkJITYDDh4GFicYNkgbQ1gLLkUDITYCFyk7gtmFiAfURwAAAABJRU5ErkJggg=="},"images":{"fallback":{"src":"/static/1218f3f01ec49437d381271c6bcea5e0/a89ca/intro.jpg","srcSet":"/static/1218f3f01ec49437d381271c6bcea5e0/96deb/intro.jpg 150w,\n/static/1218f3f01ec49437d381271c6bcea5e0/0fdf4/intro.jpg 300w,\n/static/1218f3f01ec49437d381271c6bcea5e0/a89ca/intro.jpg 600w","sizes":"(min-width: 600px) 600px, 100vw"},"sources":[{"srcSet":"/static/1218f3f01ec49437d381271c6bcea5e0/81307/intro.avif 150w,\n/static/1218f3f01ec49437d381271c6bcea5e0/aa5b9/intro.avif 300w,\n/static/1218f3f01ec49437d381271c6bcea5e0/0c8d0/intro.avif 600w","type":"image/avif","sizes":"(min-width: 600px) 600px, 100vw"},{"srcSet":"/static/1218f3f01ec49437d381271c6bcea5e0/c65bc/intro.webp 150w,\n/static/1218f3f01ec49437d381271c6bcea5e0/078c3/intro.webp 300w,\n/static/1218f3f01ec49437d381271c6bcea5e0/6d09e/intro.webp 600w","type":"image/webp","sizes":"(min-width: 600px) 600px, 100vw"}]},"width":600,"height":600}}}},"wordCount":{"words":659}},{"id":"e173a2ae-ebb5-5219-9479-035dde5fe8c8","frontmatter":{"date":"20 Jun 2024","title":"Self-Hosted build Agent for Azure Pipelines","text":"Welcome to our guide to installing the Azure Agent In this post, we'll cover the installation process, whether you're setting up a self-hosted agent for Azure Pipelines","cover":{"childImageSharp":{"gatsbyImageData":{"layout":"constrained","placeholder":{"fallback":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAIAAAAC64paAAAACXBIWXMAAAsSAAALEgHS3X78AAAEqUlEQVR42jVUC0xTVxhulmwzLts0xESjTKagQ9xE0SnETR1iRwsI8lbBLeAowgRxmELlUQSxTGiAUiwWoTw3yriWCuFVSgu1ZUBHKVZKYSChIFAYr9t7+7p390pMvpz8Oef/zv845/8INhSyYkCwFbYisAUzEBhBIBTFYcNsFLYhuIHiDtAWtlgEnIM5oUYLvmXCXFHUMmGEHy1ALRtGxAq+MYEQCoEwuAptYNchiBFBjdb3ZDyCfnNtEQbn19debYL9mn/3F/W7TcNxK5vZ+pVfp9f1VrhA2MebXZk1gn8ZoNdGI0axoPAW2TQGmgbmFtP7tPmTK2eTuPuedafOLLOGJ7y1hlOTG0mzq3GtAzS5VqAe79aq5i0msw3cimxZMUwDOuW9TrVXrdJVMm/foDimWyKPLnp16b7k9Xfq55JnliNVM8XPe0qkI0K5kq5bq1zESyCgqG1wZqpOP00pBgjEXE/ZfOCK+bjK8IVEv+dBy65cUdngKLlH+dubTUaDyKNQWKJQV6imZiEQ6x9hde2/czWaHWpor2LGuV5xOa38Gkdor7VGi7Wn89s/pTafAdRE6dTjXtVx39vkyISCxgbRwBA0rbCiCIHBFWyLKFC3+pZu1O+XLQfRq4kckWfdP5ldo04dqx9fLb6YUnGlvj+Q2+3Pav4qMss9h5vwQqrRjqKolXD74bPPbxUZrtsJKgM+qZu+1jfvVqXy4PQfqxy1i+d9+H38dxTmmVulHtTK4FaNg2+Sy73yiIaX4teTOFk3oXMulVFIocFU1iGeJrnjtWP91PaYyu0kGpHGeaDQkOvF7jeLnaKYN7MYh86E7SRSzz7pbOxToljay+vrzDL2hcQcB676aKHkQMYLp7Ds87TywJHZ0CVrQFWfXUD6AfewkyF3vkkq8S4ELhUKvi5sl8y9xR6Y0CVX7iYlBldLjmY+3++X5lXQED78hj2uv9g3f1g4tSso8+SNDCbtxpWoRLenMnKl1D2BdSKO9VA9h31EQs/LgQ8Oh/gw+OeLWy+3jbAnFxxfwTuT/3SNYTgEp53OA8hNgz/SK6KKqqJy8omPuLd5vKu5XGHvEF5zt3xw2yE/Ym4DRabzHV/9LJwZHHvH3j3c/1ZK6N0sbwbgVigKLO/yoORmUoIzJie8e5U+tJy8KiFOTmQDHx0J+SGt4lwSx7lE+m0kLSMuPonNv5THP3y3LAqQk6NoLo9b9qXw91zNvf6k6SduGxsQAiMDFiztxNLnBIcAx2hmRFmbazTDg9Vyv1l+JCTdo7Q9PLXEk8rLJp1ozLxQ0yW+Wcx/2K9NkI7VKoc1I2IbihIgC8ht6r5f1Sr5W8SJ9Y+Jjj1IF8TkcUKpnIOxnL10QRZfXJ36c6NcFsGTudT2kGqBIG7v2Mws3jCzDZsqNL30D7+CmrgyILui6VR8CSmbReH3+tB59OE5al37juQ6V3ZXJl/KqO/gdAwtLb01I8Z3I4mLhkk8oGoaGtcuGH6vELj+wvQDRoeWN8fW1g2oWSRR+N5hPhUp1o0QipgQPJjlvRi8EyAExUqwgmbQarNsGNdgyyaCwDYbLkz4EWJGEcuWSOHAxQfXn/8BLFwotU5H9gkAAAAASUVORK5CYII="},"images":{"fallback":{"src":"/static/5b09e340899c3ea191d650dd40043308/c7240/intro.png","srcSet":"/static/5b09e340899c3ea191d650dd40043308/de3a1/intro.png 150w,\n/static/5b09e340899c3ea191d650dd40043308/30cdc/intro.png 300w,\n/static/5b09e340899c3ea191d650dd40043308/c7240/intro.png 600w","sizes":"(min-width: 600px) 600px, 100vw"},"sources":[{"srcSet":"/static/5b09e340899c3ea191d650dd40043308/81307/intro.avif 150w,\n/static/5b09e340899c3ea191d650dd40043308/aa5b9/intro.avif 300w,\n/static/5b09e340899c3ea191d650dd40043308/0c8d0/intro.avif 600w","type":"image/avif","sizes":"(min-width: 600px) 600px, 100vw"},{"srcSet":"/static/5b09e340899c3ea191d650dd40043308/c65bc/intro.webp 150w,\n/static/5b09e340899c3ea191d650dd40043308/078c3/intro.webp 300w,\n/static/5b09e340899c3ea191d650dd40043308/6d09e/intro.webp 600w","type":"image/webp","sizes":"(min-width: 600px) 600px, 100vw"}]},"width":600,"height":600}}}},"wordCount":{"words":763}},{"id":"10582553-73a2-569f-8bdd-980e1f77c10a","frontmatter":{"date":"20 Jun 2024","title":"Streamlining Changelog Creation with Azure DevOps and Confluence","text":"In the fast-paced world of software development, maintaining a detailed record of changes is crucial. Changelogs serve as a vital tool, tracking every update, fix, or feature added to a project. Integrating Azure DevOps with Confluence can create a seamless changelog management system that enhances transparency and efficiency. This blog post explores how to automate changelog creation in Confluence using a PowerShell script that extracts release information from an Azure DevOps repository.","cover":{"childImageSharp":{"gatsbyImageData":{"layout":"constrained","placeholder":{"fallback":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAIAAAAC64paAAAACXBIWXMAAAsSAAALEgHS3X78AAAEj0lEQVR42iVS+VNaZxR9/1Hb3zJtp5NM00lNqmksmlg1imLU+NS4EASNuKK44BJQgyEKLk0QCYqyLwo8tse+vsf2QAU1RmtNJ+0PaeznZObMnTtnzrnf/e69kExt2bgCsqFB5FqbXGcFiUyNbOvtSoNjS2vb1Fq/CLb09i2dTa61yjUIYKRKE/RWZQYACgBgVhicO/ZAJHngCSftPiwQ2/dF04gnakZD2wYHqAhw5ddZNzUIpEe8FlcIRI3JhfpjQTxtdYW7+id1u479w5N5kWRVso2lc65gPIgTFjSkNDp1ZrfR6lUYHJDDhzn9MZsnihM5o81b+4R5u5DyazHFE8DwzJFSbbh5p7QGZjg9oeTesc0dQdAQMMtB/xorpN5FXYFYOL6nMrmHp4UVtU9rGmjkWmpX7zilrh1u7vz6Wl4rfRCxoi20gTW5ftcRtDhDTj+uN7shrcltRDw9w7yJl+vucMrtDYUjGPB/de32N9fybuWX3btPaaP1D4/xSCWPpmcWzQ6/0mhPZXKeUBwK48RfFx86Olkl5JaGtr7vfyz8vaqloo5+q+Bh/m+UojIYbh/Mu1tRWtlotbs+/P2P2x/ZVJu39A7lDgpFcMIXif/3+fMYh/ftjXvzy7JoKgvmJ1iW8oWS11JVJJm9XVil05suLy/xZObd6Tl4bNceMCA+SLSmvJ5XUl3f0UQdIMPd4M/tDDaROcATRCqTzRwcnpyeP6hsrm/sqIVpT+m9VZTmATbX5AwBPxTCiLv361icl7HMSSiRLa9pu18OewKReCqDeCIiidqCBtsY7PqW3u9uFpVUwM/5K3IdojA6VSYX5IskprgLz/rGGT1jg2xePqm6qp7mDUSxBOEOxmUaBOyiBu5qpA6AKfQOcxFngDu39Kx/anVdDbl8Uc4Uv481+biF2UTtv3mnvLGt1xeMEnsHQSytMKK+aKqwpP6Hn0gPKa2PGhnkOur1OxXTgjUseQBN81fa6QNFZQ3bOsuuI0BnjoENo55ggsjYfbhYYbZ7sReLa0OcOblqRyCS1DZ3d7O4m1qbDvFCQ9NC3ouldvrgjZ9LCkiU0kqY1sUORuPEfjaS2DehISx1QCqDB0e5ny4vTVY32KhIrOgeX5BpEWhJohydesWeFLwQSqfmlvtHZsEl2VBfIpUGlzi/Kn+zoS0ufcwcnHx/8REcfCdzhMtfGeYtB2IZaNvgrGpiCpbWQeF/P136o0m4tSeXOwrjqezR6dnFR75ISmNyePMrQGBxeFtpfeMzotmlTZnWDr3VObkCMZvDnxO85r96M8FbLC6DJybn/XhmZkHa1MFmjc/PCMSjXKFcY17f1IiW13iCN88XpGKlBSLDnXBb7zBn9knHQCO1H7THYI78QqK00oee0NkPyK0tNNYf60rWlLC8ll5AqqYyWOQ6Gp01qzF7IZXRvrZl1Fg8WotXbQbRo9xF36osi2IFWLLG4t3eQTe0VpBIFMZVqUYoVspUJocf8+FpKJk9SeVOY3vHAPH9L/FdMvc+ffxnInsS278iAQP41OEZcXSWOT4nDq/0GJH7H4wRHg5A4W/XAAAAAElFTkSuQmCC"},"images":{"fallback":{"src":"/static/1441f6fa5d6f422fe91db317638f9f32/c7240/intro.png","srcSet":"/static/1441f6fa5d6f422fe91db317638f9f32/de3a1/intro.png 150w,\n/static/1441f6fa5d6f422fe91db317638f9f32/30cdc/intro.png 300w,\n/static/1441f6fa5d6f422fe91db317638f9f32/c7240/intro.png 600w","sizes":"(min-width: 600px) 600px, 100vw"},"sources":[{"srcSet":"/static/1441f6fa5d6f422fe91db317638f9f32/81307/intro.avif 150w,\n/static/1441f6fa5d6f422fe91db317638f9f32/aa5b9/intro.avif 300w,\n/static/1441f6fa5d6f422fe91db317638f9f32/0c8d0/intro.avif 600w","type":"image/avif","sizes":"(min-width: 600px) 600px, 100vw"},{"srcSet":"/static/1441f6fa5d6f422fe91db317638f9f32/c65bc/intro.webp 150w,\n/static/1441f6fa5d6f422fe91db317638f9f32/078c3/intro.webp 300w,\n/static/1441f6fa5d6f422fe91db317638f9f32/6d09e/intro.webp 600w","type":"image/webp","sizes":"(min-width: 600px) 600px, 100vw"}]},"width":600,"height":600}}}},"wordCount":{"words":722}},{"id":"91d98aad-6ec6-5e71-b6ca-daff730c0ca4","frontmatter":{"date":"12 Jun 2023","title":"Awesome post 6","text":"Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source. Lorem Ipsum comes from sections 1.10.32 and 1.10.33 of \"de Finibus Bonorum et Malorum\" (The Extremes of Good and Evil) by Cicero, written in 45 BC. This book is a treatise on the theory of ethics, very popular during the Renaissance. The first line of Lorem Ipsum, \"Lorem ipsum dolor sit amet..\", comes from a line in section 1.10.32.","cover":{"childImageSharp":{"gatsbyImageData":{"layout":"constrained","placeholder":{"fallback":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAPCAYAAADkmO9VAAAACXBIWXMAAAsTAAALEwEAmpwYAAACPklEQVR42o1U227TQBDNf/HAl/WJZ15A6h+AWgoChESFqpDSNiRcSsJFApI0jUnT3Hy3d+31JYeZdUIiU0otrdZezZxz5sysK3aY4KbLDBLM/etjKlcdWledEVgUp8jSFI64IaArEx0sVZHkyhR+nCEkoDzPUetGuN/w8HHuQUSpJuacfwOKVJfUOI8w8xWEysBPEOd6v3sU4Nb2HE1DQhAJW1BWW1mVw7tHiqZegp12iEtXIUoKwK0DiXt1gQs3w4NPoSZdAfHulAElsbliHeTLpWdJjrHp4eDLFD+nMXy1QJZlcDVQYYtHsSZ9z/wNwGffiN1RCMmXVVPMgBUuMJ6YsGYW+bqgxIwAMkxIPfvLJbOY1jDCQ1LONlSYpdqRGBGgL9dKGTBOF+jaFr7OTNgU7MUR2oaDgbWuYmXTuaV0rlYo4uQPkBMW73weqRzb0wFu96rYcQZ47Bg4mUwRiBy2WDWyWJ7YKJml86FmDQtfxp7C236Il40uDNeEQgqRJWiNJMZUMiuzl7F/dZnBhrbSsrXJNDJNQ2H/9BeevBviUVthtx2jMYhx0rHJ7xgBAc6IdF4anYq1NPb4LMJzak5KN8Eg4GpH4JTM3mt52HpxiTuvLOz/iHRHuYqYhr9+LrH3OdTvZlAabA7i+WK13KCjnsAbItmttvG0+h7N7xcYWpFunLVUxaMyckoKy3fRWXpa7wscdgVqPYnDfoLaWawt2UzebOC1PwdeH+h61QiQlb7uhDTYkfbX+s8f6Td8JW7ht0aWRwAAAABJRU5ErkJggg=="},"images":{"fallback":{"src":"/static/e89878735987983b99492d885250d035/60da4/blogCover.png","srcSet":"/static/e89878735987983b99492d885250d035/17981/blogCover.png 150w,\n/static/e89878735987983b99492d885250d035/e9a60/blogCover.png 300w,\n/static/e89878735987983b99492d885250d035/60da4/blogCover.png 600w,\n/static/e89878735987983b99492d885250d035/a3486/blogCover.png 1200w","sizes":"(min-width: 600px) 600px, 100vw"},"sources":[{"srcSet":"/static/e89878735987983b99492d885250d035/e625e/blogCover.avif 150w,\n/static/e89878735987983b99492d885250d035/2574e/blogCover.avif 300w,\n/static/e89878735987983b99492d885250d035/d3834/blogCover.avif 600w,\n/static/e89878735987983b99492d885250d035/387a3/blogCover.avif 1200w","type":"image/avif","sizes":"(min-width: 600px) 600px, 100vw"},{"srcSet":"/static/e89878735987983b99492d885250d035/e80bb/blogCover.webp 150w,\n/static/e89878735987983b99492d885250d035/a8059/blogCover.webp 300w,\n/static/e89878735987983b99492d885250d035/9a858/blogCover.webp 600w,\n/static/e89878735987983b99492d885250d035/c3710/blogCover.webp 1200w","type":"image/webp","sizes":"(min-width: 600px) 600px, 100vw"}]},"width":600,"height":450}}}},"wordCount":{"words":707}},{"id":"1f201db1-7d1d-5ef0-b138-fe7b3dc57ba8","frontmatter":{"date":"11 Jun 2023","title":"Awesome post 5","text":"Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source. Lorem Ipsum comes from sections 1.10.32 and 1.10.33 of \"de Finibus Bonorum et Malorum\" (The Extremes of Good and Evil) by Cicero, written in 45 BC. This book is a treatise on the theory of ethics, very popular during the Renaissance. The first line of Lorem Ipsum, \"Lorem ipsum dolor sit amet..\", comes from a line in section 1.10.32.","cover":{"childImageSharp":{"gatsbyImageData":{"layout":"constrained","placeholder":{"fallback":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAPCAYAAADkmO9VAAAACXBIWXMAAAsTAAALEwEAmpwYAAACPklEQVR42o1U227TQBDNf/HAl/WJZ15A6h+AWgoChESFqpDSNiRcSsJFApI0jUnT3Hy3d+31JYeZdUIiU0otrdZezZxz5sysK3aY4KbLDBLM/etjKlcdWledEVgUp8jSFI64IaArEx0sVZHkyhR+nCEkoDzPUetGuN/w8HHuQUSpJuacfwOKVJfUOI8w8xWEysBPEOd6v3sU4Nb2HE1DQhAJW1BWW1mVw7tHiqZegp12iEtXIUoKwK0DiXt1gQs3w4NPoSZdAfHulAElsbliHeTLpWdJjrHp4eDLFD+nMXy1QJZlcDVQYYtHsSZ9z/wNwGffiN1RCMmXVVPMgBUuMJ6YsGYW+bqgxIwAMkxIPfvLJbOY1jDCQ1LONlSYpdqRGBGgL9dKGTBOF+jaFr7OTNgU7MUR2oaDgbWuYmXTuaV0rlYo4uQPkBMW73weqRzb0wFu96rYcQZ47Bg4mUwRiBy2WDWyWJ7YKJml86FmDQtfxp7C236Il40uDNeEQgqRJWiNJMZUMiuzl7F/dZnBhrbSsrXJNDJNQ2H/9BeevBviUVthtx2jMYhx0rHJ7xgBAc6IdF4anYq1NPb4LMJzak5KN8Eg4GpH4JTM3mt52HpxiTuvLOz/iHRHuYqYhr9+LrH3OdTvZlAabA7i+WK13KCjnsAbItmttvG0+h7N7xcYWpFunLVUxaMyckoKy3fRWXpa7wscdgVqPYnDfoLaWawt2UzebOC1PwdeH+h61QiQlb7uhDTYkfbX+s8f6Td8JW7ht0aWRwAAAABJRU5ErkJggg=="},"images":{"fallback":{"src":"/static/e89878735987983b99492d885250d035/60da4/blogCover.png","srcSet":"/static/e89878735987983b99492d885250d035/17981/blogCover.png 150w,\n/static/e89878735987983b99492d885250d035/e9a60/blogCover.png 300w,\n/static/e89878735987983b99492d885250d035/60da4/blogCover.png 600w,\n/static/e89878735987983b99492d885250d035/a3486/blogCover.png 1200w","sizes":"(min-width: 600px) 600px, 100vw"},"sources":[{"srcSet":"/static/e89878735987983b99492d885250d035/e625e/blogCover.avif 150w,\n/static/e89878735987983b99492d885250d035/2574e/blogCover.avif 300w,\n/static/e89878735987983b99492d885250d035/d3834/blogCover.avif 600w,\n/static/e89878735987983b99492d885250d035/387a3/blogCover.avif 1200w","type":"image/avif","sizes":"(min-width: 600px) 600px, 100vw"},{"srcSet":"/static/e89878735987983b99492d885250d035/e80bb/blogCover.webp 150w,\n/static/e89878735987983b99492d885250d035/a8059/blogCover.webp 300w,\n/static/e89878735987983b99492d885250d035/9a858/blogCover.webp 600w,\n/static/e89878735987983b99492d885250d035/c3710/blogCover.webp 1200w","type":"image/webp","sizes":"(min-width: 600px) 600px, 100vw"}]},"width":600,"height":450}}}},"wordCount":{"words":614}}]}},"pageContext":{"limit":5,"skip":0,"pagesQuantity":2,"currentPage":1,"lang":"en","markupData":{"bannerTitle":"Well unknown facts","head":"CodeCave Blog","readPostLink":"Open article","readingTimeTitle":"Reading time","readingTimeUnits":"m","postFooterTitle":"Congratulations! Now you can show off with your new knowledge!","postFooterText":"If you want us to uncover some other Well unknown facts, you can contact us via the socials or e-mail below. See you!","sharePostTitle":"Share this post","readMoreOnTopicTitle":"Read more on","blogSectionTitle":"new in our blog","blogSectionLinkTitle":"all posts","image":{"childImageSharp":{"gatsbyImageData":{"layout":"constrained","placeholder":{"fallback":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAACXBIWXMAAAsTAAALEwEAmpwYAAAD1UlEQVR42pWUX0zTVxTHCwT501JKaWmBrsUV5N9gIixsuqgwlDCge7Hooli0yp9ZRR+0BdryxxU7oVCQgC3Kn1IMf0S3xLlMI2Mapw+a6JMGX9yMe3EPbvoimHw99xJJnIPpw82vub33ez7nnO89gqioKLzLkkqlkMvliI6O5r+XOid4FzEmFBkZiaCgIISFhSEiIoKLMvH3EnxNFRwcDI1GA4vFgry8PHyo1UIsFkMoFEImk71BvKQgOygSibiYXl+Ge/fu4+X8PC5f+hkOhwOmfSZkrc7ixOHh4Yu0gv+iYt+AgABotYnw+/2Ym5vDo0e/49zUJI47nejr7cXQ4BDcnW7UVNcgOzsbK1aEcGrBv6lYtNDQUOytrMTjx3/i+fNnuHv3DsbHx+AbHibRKTTa7XC1tWNsbAxdbjfG6Wsxm6GKVy0IMiGGHBgYiKysNbh48SeieoHZ2fu4dvVXDA0MwNXeDk9fH/wjI7h58wbOjI7CcsSMbncXBgdOw+v1ID09HQKWIqsD66KZojx58hf++fspZn6ZRmdHB4YHB9F+vA1ej4eo2jjZMUcrJscniK6LU/d0d6PJ3rggyCyQm5uLW7duY36eavXHQ/zw/Xn0e7041d/Pa+Y96eE0vmEfJicmUF1ZBVPNN+jt6eGp7qqoQN6GjdwJnDAjI4NHYh1sqKuDo+UoRkf8sFutOEkNsFlt2GUwoKW5mUjsGDh9Ctd/u4ZOlwtlej0+ycmBtb4BO7Zvh4DVLiQkBPFxcWhqbKRauehyBewNVkydPcvJeohk+so0Dpj2o+07J2ZmpvFgdhaObx3YuH49mumeTqdb6LJEIqHuxEOjVnPL6LdswYkT3TAfPgLDjnK0kud+vHAB9XX1VAIvX9VVVbyue4xGnhGzDXMGu79om5UJCUhOToaYapqelkYCdXAec2KvcQ8tI5ytrWhpaoKupBRRBJFDIpsKNkFNIEzsLWOLqcuMNjMjE6XFJRCSH4uKiqhuLZzyYG0t1n62Fh9RJ5kjNhcU4PN167hvme3eenrszUrooMGwE1/pSpFEr0ROB9UaNfabTCjcXEj12oBDtQfxRX4+PiVnlBQXLw6KNwTZBouUTw9/xOfj6bP91ZkfIykxkYgk2Fa2FUeJ1mazwWjcDZFQxJuw5LRh6SoUCqKSQ6P6AAlqDd9TqVT4eus2lJeXIzU1FV8WFiJOGcvT/t/xxQRer/jYOEpbC6VCSeWIgTJGgZSkVVDExCCS/pe+z4BlhxmBTBYNbcJKJCcmIS0lBbFKJQ+23AxddsCyywvCMkhYEE4mXVbwFQflxPovnsZUAAAAAElFTkSuQmCC"},"images":{"fallback":{"src":"/static/b358397f973ed74732db29698c1773d1/30cdc/blog.png","srcSet":"/static/b358397f973ed74732db29698c1773d1/7458e/blog.png 75w,\n/static/b358397f973ed74732db29698c1773d1/de3a1/blog.png 150w,\n/static/b358397f973ed74732db29698c1773d1/30cdc/blog.png 300w","sizes":"(min-width: 300px) 300px, 100vw"},"sources":[{"srcSet":"/static/b358397f973ed74732db29698c1773d1/eb54c/blog.avif 75w,\n/static/b358397f973ed74732db29698c1773d1/81307/blog.avif 150w,\n/static/b358397f973ed74732db29698c1773d1/aa5b9/blog.avif 300w","type":"image/avif","sizes":"(min-width: 300px) 300px, 100vw"},{"srcSet":"/static/b358397f973ed74732db29698c1773d1/18188/blog.webp 75w,\n/static/b358397f973ed74732db29698c1773d1/c65bc/blog.webp 150w,\n/static/b358397f973ed74732db29698c1773d1/078c3/blog.webp 300w","type":"image/webp","sizes":"(min-width: 300px) 300px, 100vw"}]},"width":300,"height":300}}}},"pagination":{"next":"Next page"},"site":{"siteUrl":"https://www.codecave.it"}}},"staticQueryHashes":["2595676272","2708699711"],"slicesMap":{}} \ No newline at end of file diff --git a/page-data/blog/page/1/page-data.json b/page-data/blog/page/1/page-data.json index 7a5e9b3f..91f4e6dc 100644 --- a/page-data/blog/page/1/page-data.json +++ b/page-data/blog/page/1/page-data.json @@ -1 +1 @@ -{"componentChunkName":"component---src-pages-templates-blog-tsx","path":"/blog/page/1/","result":{"data":{"allMarkdownRemark":{"nodes":[{"id":"91d98aad-6ec6-5e71-b6ca-daff730c0ca4","frontmatter":{"date":"12 Jun 2023","title":"Awesome post 6","text":"Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source. Lorem Ipsum comes from sections 1.10.32 and 1.10.33 of \"de Finibus Bonorum et Malorum\" (The Extremes of Good and Evil) by Cicero, written in 45 BC. This book is a treatise on the theory of ethics, very popular during the Renaissance. The first line of Lorem Ipsum, \"Lorem ipsum dolor sit amet..\", comes from a line in section 1.10.32.","cover":{"childImageSharp":{"gatsbyImageData":{"layout":"constrained","placeholder":{"fallback":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAPCAYAAADkmO9VAAAACXBIWXMAAAsTAAALEwEAmpwYAAACPklEQVR42o1U227TQBDNf/HAl/WJZ15A6h+AWgoChESFqpDSNiRcSsJFApI0jUnT3Hy3d+31JYeZdUIiU0otrdZezZxz5sysK3aY4KbLDBLM/etjKlcdWledEVgUp8jSFI64IaArEx0sVZHkyhR+nCEkoDzPUetGuN/w8HHuQUSpJuacfwOKVJfUOI8w8xWEysBPEOd6v3sU4Nb2HE1DQhAJW1BWW1mVw7tHiqZegp12iEtXIUoKwK0DiXt1gQs3w4NPoSZdAfHulAElsbliHeTLpWdJjrHp4eDLFD+nMXy1QJZlcDVQYYtHsSZ9z/wNwGffiN1RCMmXVVPMgBUuMJ6YsGYW+bqgxIwAMkxIPfvLJbOY1jDCQ1LONlSYpdqRGBGgL9dKGTBOF+jaFr7OTNgU7MUR2oaDgbWuYmXTuaV0rlYo4uQPkBMW73weqRzb0wFu96rYcQZ47Bg4mUwRiBy2WDWyWJ7YKJml86FmDQtfxp7C236Il40uDNeEQgqRJWiNJMZUMiuzl7F/dZnBhrbSsrXJNDJNQ2H/9BeevBviUVthtx2jMYhx0rHJ7xgBAc6IdF4anYq1NPb4LMJzak5KN8Eg4GpH4JTM3mt52HpxiTuvLOz/iHRHuYqYhr9+LrH3OdTvZlAabA7i+WK13KCjnsAbItmttvG0+h7N7xcYWpFunLVUxaMyckoKy3fRWXpa7wscdgVqPYnDfoLaWawt2UzebOC1PwdeH+h61QiQlb7uhDTYkfbX+s8f6Td8JW7ht0aWRwAAAABJRU5ErkJggg=="},"images":{"fallback":{"src":"/static/e89878735987983b99492d885250d035/60da4/blogCover.png","srcSet":"/static/e89878735987983b99492d885250d035/17981/blogCover.png 150w,\n/static/e89878735987983b99492d885250d035/e9a60/blogCover.png 300w,\n/static/e89878735987983b99492d885250d035/60da4/blogCover.png 600w,\n/static/e89878735987983b99492d885250d035/a3486/blogCover.png 1200w","sizes":"(min-width: 600px) 600px, 100vw"},"sources":[{"srcSet":"/static/e89878735987983b99492d885250d035/e625e/blogCover.avif 150w,\n/static/e89878735987983b99492d885250d035/2574e/blogCover.avif 300w,\n/static/e89878735987983b99492d885250d035/d3834/blogCover.avif 600w,\n/static/e89878735987983b99492d885250d035/387a3/blogCover.avif 1200w","type":"image/avif","sizes":"(min-width: 600px) 600px, 100vw"},{"srcSet":"/static/e89878735987983b99492d885250d035/e80bb/blogCover.webp 150w,\n/static/e89878735987983b99492d885250d035/a8059/blogCover.webp 300w,\n/static/e89878735987983b99492d885250d035/9a858/blogCover.webp 600w,\n/static/e89878735987983b99492d885250d035/c3710/blogCover.webp 1200w","type":"image/webp","sizes":"(min-width: 600px) 600px, 100vw"}]},"width":600,"height":450}}}},"wordCount":{"words":707}},{"id":"1f201db1-7d1d-5ef0-b138-fe7b3dc57ba8","frontmatter":{"date":"11 Jun 2023","title":"Awesome post 5","text":"Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source. Lorem Ipsum comes from sections 1.10.32 and 1.10.33 of \"de Finibus Bonorum et Malorum\" (The Extremes of Good and Evil) by Cicero, written in 45 BC. This book is a treatise on the theory of ethics, very popular during the Renaissance. The first line of Lorem Ipsum, \"Lorem ipsum dolor sit amet..\", comes from a line in section 1.10.32.","cover":{"childImageSharp":{"gatsbyImageData":{"layout":"constrained","placeholder":{"fallback":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAPCAYAAADkmO9VAAAACXBIWXMAAAsTAAALEwEAmpwYAAACPklEQVR42o1U227TQBDNf/HAl/WJZ15A6h+AWgoChESFqpDSNiRcSsJFApI0jUnT3Hy3d+31JYeZdUIiU0otrdZezZxz5sysK3aY4KbLDBLM/etjKlcdWledEVgUp8jSFI64IaArEx0sVZHkyhR+nCEkoDzPUetGuN/w8HHuQUSpJuacfwOKVJfUOI8w8xWEysBPEOd6v3sU4Nb2HE1DQhAJW1BWW1mVw7tHiqZegp12iEtXIUoKwK0DiXt1gQs3w4NPoSZdAfHulAElsbliHeTLpWdJjrHp4eDLFD+nMXy1QJZlcDVQYYtHsSZ9z/wNwGffiN1RCMmXVVPMgBUuMJ6YsGYW+bqgxIwAMkxIPfvLJbOY1jDCQ1LONlSYpdqRGBGgL9dKGTBOF+jaFr7OTNgU7MUR2oaDgbWuYmXTuaV0rlYo4uQPkBMW73weqRzb0wFu96rYcQZ47Bg4mUwRiBy2WDWyWJ7YKJml86FmDQtfxp7C236Il40uDNeEQgqRJWiNJMZUMiuzl7F/dZnBhrbSsrXJNDJNQ2H/9BeevBviUVthtx2jMYhx0rHJ7xgBAc6IdF4anYq1NPb4LMJzak5KN8Eg4GpH4JTM3mt52HpxiTuvLOz/iHRHuYqYhr9+LrH3OdTvZlAabA7i+WK13KCjnsAbItmttvG0+h7N7xcYWpFunLVUxaMyckoKy3fRWXpa7wscdgVqPYnDfoLaWawt2UzebOC1PwdeH+h61QiQlb7uhDTYkfbX+s8f6Td8JW7ht0aWRwAAAABJRU5ErkJggg=="},"images":{"fallback":{"src":"/static/e89878735987983b99492d885250d035/60da4/blogCover.png","srcSet":"/static/e89878735987983b99492d885250d035/17981/blogCover.png 150w,\n/static/e89878735987983b99492d885250d035/e9a60/blogCover.png 300w,\n/static/e89878735987983b99492d885250d035/60da4/blogCover.png 600w,\n/static/e89878735987983b99492d885250d035/a3486/blogCover.png 1200w","sizes":"(min-width: 600px) 600px, 100vw"},"sources":[{"srcSet":"/static/e89878735987983b99492d885250d035/e625e/blogCover.avif 150w,\n/static/e89878735987983b99492d885250d035/2574e/blogCover.avif 300w,\n/static/e89878735987983b99492d885250d035/d3834/blogCover.avif 600w,\n/static/e89878735987983b99492d885250d035/387a3/blogCover.avif 1200w","type":"image/avif","sizes":"(min-width: 600px) 600px, 100vw"},{"srcSet":"/static/e89878735987983b99492d885250d035/e80bb/blogCover.webp 150w,\n/static/e89878735987983b99492d885250d035/a8059/blogCover.webp 300w,\n/static/e89878735987983b99492d885250d035/9a858/blogCover.webp 600w,\n/static/e89878735987983b99492d885250d035/c3710/blogCover.webp 1200w","type":"image/webp","sizes":"(min-width: 600px) 600px, 100vw"}]},"width":600,"height":450}}}},"wordCount":{"words":614}},{"id":"f7437acb-56dc-5ec6-9370-7726f39da57a","frontmatter":{"date":"10 Jun 2023","title":"Awesome post 4","text":"Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source. Lorem Ipsum comes from sections 1.10.32 and 1.10.33 of \"de Finibus Bonorum et Malorum\" (The Extremes of Good and Evil) by Cicero, written in 45 BC. This book is a treatise on the theory of ethics, very popular during the Renaissance. The first line of Lorem Ipsum, \"Lorem ipsum dolor sit amet..\", comes from a line in section 1.10.32.","cover":{"childImageSharp":{"gatsbyImageData":{"layout":"constrained","placeholder":{"fallback":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAPCAYAAADkmO9VAAAACXBIWXMAAAsTAAALEwEAmpwYAAACPklEQVR42o1U227TQBDNf/HAl/WJZ15A6h+AWgoChESFqpDSNiRcSsJFApI0jUnT3Hy3d+31JYeZdUIiU0otrdZezZxz5sysK3aY4KbLDBLM/etjKlcdWledEVgUp8jSFI64IaArEx0sVZHkyhR+nCEkoDzPUetGuN/w8HHuQUSpJuacfwOKVJfUOI8w8xWEysBPEOd6v3sU4Nb2HE1DQhAJW1BWW1mVw7tHiqZegp12iEtXIUoKwK0DiXt1gQs3w4NPoSZdAfHulAElsbliHeTLpWdJjrHp4eDLFD+nMXy1QJZlcDVQYYtHsSZ9z/wNwGffiN1RCMmXVVPMgBUuMJ6YsGYW+bqgxIwAMkxIPfvLJbOY1jDCQ1LONlSYpdqRGBGgL9dKGTBOF+jaFr7OTNgU7MUR2oaDgbWuYmXTuaV0rlYo4uQPkBMW73weqRzb0wFu96rYcQZ47Bg4mUwRiBy2WDWyWJ7YKJml86FmDQtfxp7C236Il40uDNeEQgqRJWiNJMZUMiuzl7F/dZnBhrbSsrXJNDJNQ2H/9BeevBviUVthtx2jMYhx0rHJ7xgBAc6IdF4anYq1NPb4LMJzak5KN8Eg4GpH4JTM3mt52HpxiTuvLOz/iHRHuYqYhr9+LrH3OdTvZlAabA7i+WK13KCjnsAbItmttvG0+h7N7xcYWpFunLVUxaMyckoKy3fRWXpa7wscdgVqPYnDfoLaWawt2UzebOC1PwdeH+h61QiQlb7uhDTYkfbX+s8f6Td8JW7ht0aWRwAAAABJRU5ErkJggg=="},"images":{"fallback":{"src":"/static/e89878735987983b99492d885250d035/60da4/blogCover.png","srcSet":"/static/e89878735987983b99492d885250d035/17981/blogCover.png 150w,\n/static/e89878735987983b99492d885250d035/e9a60/blogCover.png 300w,\n/static/e89878735987983b99492d885250d035/60da4/blogCover.png 600w,\n/static/e89878735987983b99492d885250d035/a3486/blogCover.png 1200w","sizes":"(min-width: 600px) 600px, 100vw"},"sources":[{"srcSet":"/static/e89878735987983b99492d885250d035/e625e/blogCover.avif 150w,\n/static/e89878735987983b99492d885250d035/2574e/blogCover.avif 300w,\n/static/e89878735987983b99492d885250d035/d3834/blogCover.avif 600w,\n/static/e89878735987983b99492d885250d035/387a3/blogCover.avif 1200w","type":"image/avif","sizes":"(min-width: 600px) 600px, 100vw"},{"srcSet":"/static/e89878735987983b99492d885250d035/e80bb/blogCover.webp 150w,\n/static/e89878735987983b99492d885250d035/a8059/blogCover.webp 300w,\n/static/e89878735987983b99492d885250d035/9a858/blogCover.webp 600w,\n/static/e89878735987983b99492d885250d035/c3710/blogCover.webp 1200w","type":"image/webp","sizes":"(min-width: 600px) 600px, 100vw"}]},"width":600,"height":450}}}},"wordCount":{"words":610}},{"id":"aa06b558-51ae-5f78-9989-0baadffbbc36","frontmatter":{"date":"08 Jun 2023","title":"Awesome post 2","text":"Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source. Lorem Ipsum comes from sections 1.10.32 and 1.10.33 of \"de Finibus Bonorum et Malorum\" (The Extremes of Good and Evil) by Cicero, written in 45 BC. This book is a treatise on the theory of ethics, very popular during the Renaissance. The first line of Lorem Ipsum, \"Lorem ipsum dolor sit amet..\", comes from a line in section 1.10.32.","cover":{"childImageSharp":{"gatsbyImageData":{"layout":"constrained","placeholder":{"fallback":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAPCAYAAADkmO9VAAAACXBIWXMAAAsTAAALEwEAmpwYAAACPklEQVR42o1U227TQBDNf/HAl/WJZ15A6h+AWgoChESFqpDSNiRcSsJFApI0jUnT3Hy3d+31JYeZdUIiU0otrdZezZxz5sysK3aY4KbLDBLM/etjKlcdWledEVgUp8jSFI64IaArEx0sVZHkyhR+nCEkoDzPUetGuN/w8HHuQUSpJuacfwOKVJfUOI8w8xWEysBPEOd6v3sU4Nb2HE1DQhAJW1BWW1mVw7tHiqZegp12iEtXIUoKwK0DiXt1gQs3w4NPoSZdAfHulAElsbliHeTLpWdJjrHp4eDLFD+nMXy1QJZlcDVQYYtHsSZ9z/wNwGffiN1RCMmXVVPMgBUuMJ6YsGYW+bqgxIwAMkxIPfvLJbOY1jDCQ1LONlSYpdqRGBGgL9dKGTBOF+jaFr7OTNgU7MUR2oaDgbWuYmXTuaV0rlYo4uQPkBMW73weqRzb0wFu96rYcQZ47Bg4mUwRiBy2WDWyWJ7YKJml86FmDQtfxp7C236Il40uDNeEQgqRJWiNJMZUMiuzl7F/dZnBhrbSsrXJNDJNQ2H/9BeevBviUVthtx2jMYhx0rHJ7xgBAc6IdF4anYq1NPb4LMJzak5KN8Eg4GpH4JTM3mt52HpxiTuvLOz/iHRHuYqYhr9+LrH3OdTvZlAabA7i+WK13KCjnsAbItmttvG0+h7N7xcYWpFunLVUxaMyckoKy3fRWXpa7wscdgVqPYnDfoLaWawt2UzebOC1PwdeH+h61QiQlb7uhDTYkfbX+s8f6Td8JW7ht0aWRwAAAABJRU5ErkJggg=="},"images":{"fallback":{"src":"/static/e89878735987983b99492d885250d035/60da4/blogCover.png","srcSet":"/static/e89878735987983b99492d885250d035/17981/blogCover.png 150w,\n/static/e89878735987983b99492d885250d035/e9a60/blogCover.png 300w,\n/static/e89878735987983b99492d885250d035/60da4/blogCover.png 600w,\n/static/e89878735987983b99492d885250d035/a3486/blogCover.png 1200w","sizes":"(min-width: 600px) 600px, 100vw"},"sources":[{"srcSet":"/static/e89878735987983b99492d885250d035/e625e/blogCover.avif 150w,\n/static/e89878735987983b99492d885250d035/2574e/blogCover.avif 300w,\n/static/e89878735987983b99492d885250d035/d3834/blogCover.avif 600w,\n/static/e89878735987983b99492d885250d035/387a3/blogCover.avif 1200w","type":"image/avif","sizes":"(min-width: 600px) 600px, 100vw"},{"srcSet":"/static/e89878735987983b99492d885250d035/e80bb/blogCover.webp 150w,\n/static/e89878735987983b99492d885250d035/a8059/blogCover.webp 300w,\n/static/e89878735987983b99492d885250d035/9a858/blogCover.webp 600w,\n/static/e89878735987983b99492d885250d035/c3710/blogCover.webp 1200w","type":"image/webp","sizes":"(min-width: 600px) 600px, 100vw"}]},"width":600,"height":450}}}},"wordCount":{"words":129}},{"id":"6a129001-a171-5d7e-9555-a943ae9d624f","frontmatter":{"date":"07 Jun 2023","title":"Awesome post 3","text":"Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source. Lorem Ipsum comes from sections 1.10.32 and 1.10.33 of \"de Finibus Bonorum et Malorum\" (The Extremes of Good and Evil) by Cicero, written in 45 BC. This book is a treatise on the theory of ethics, very popular during the Renaissance. The first line of Lorem Ipsum, \"Lorem ipsum dolor sit amet..\", comes from a line in section 1.10.32.","cover":{"childImageSharp":{"gatsbyImageData":{"layout":"constrained","placeholder":{"fallback":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAPCAYAAADkmO9VAAAACXBIWXMAAAsTAAALEwEAmpwYAAACPklEQVR42o1U227TQBDNf/HAl/WJZ15A6h+AWgoChESFqpDSNiRcSsJFApI0jUnT3Hy3d+31JYeZdUIiU0otrdZezZxz5sysK3aY4KbLDBLM/etjKlcdWledEVgUp8jSFI64IaArEx0sVZHkyhR+nCEkoDzPUetGuN/w8HHuQUSpJuacfwOKVJfUOI8w8xWEysBPEOd6v3sU4Nb2HE1DQhAJW1BWW1mVw7tHiqZegp12iEtXIUoKwK0DiXt1gQs3w4NPoSZdAfHulAElsbliHeTLpWdJjrHp4eDLFD+nMXy1QJZlcDVQYYtHsSZ9z/wNwGffiN1RCMmXVVPMgBUuMJ6YsGYW+bqgxIwAMkxIPfvLJbOY1jDCQ1LONlSYpdqRGBGgL9dKGTBOF+jaFr7OTNgU7MUR2oaDgbWuYmXTuaV0rlYo4uQPkBMW73weqRzb0wFu96rYcQZ47Bg4mUwRiBy2WDWyWJ7YKJml86FmDQtfxp7C236Il40uDNeEQgqRJWiNJMZUMiuzl7F/dZnBhrbSsrXJNDJNQ2H/9BeevBviUVthtx2jMYhx0rHJ7xgBAc6IdF4anYq1NPb4LMJzak5KN8Eg4GpH4JTM3mt52HpxiTuvLOz/iHRHuYqYhr9+LrH3OdTvZlAabA7i+WK13KCjnsAbItmttvG0+h7N7xcYWpFunLVUxaMyckoKy3fRWXpa7wscdgVqPYnDfoLaWawt2UzebOC1PwdeH+h61QiQlb7uhDTYkfbX+s8f6Td8JW7ht0aWRwAAAABJRU5ErkJggg=="},"images":{"fallback":{"src":"/static/e89878735987983b99492d885250d035/60da4/blogCover.png","srcSet":"/static/e89878735987983b99492d885250d035/17981/blogCover.png 150w,\n/static/e89878735987983b99492d885250d035/e9a60/blogCover.png 300w,\n/static/e89878735987983b99492d885250d035/60da4/blogCover.png 600w,\n/static/e89878735987983b99492d885250d035/a3486/blogCover.png 1200w","sizes":"(min-width: 600px) 600px, 100vw"},"sources":[{"srcSet":"/static/e89878735987983b99492d885250d035/e625e/blogCover.avif 150w,\n/static/e89878735987983b99492d885250d035/2574e/blogCover.avif 300w,\n/static/e89878735987983b99492d885250d035/d3834/blogCover.avif 600w,\n/static/e89878735987983b99492d885250d035/387a3/blogCover.avif 1200w","type":"image/avif","sizes":"(min-width: 600px) 600px, 100vw"},{"srcSet":"/static/e89878735987983b99492d885250d035/e80bb/blogCover.webp 150w,\n/static/e89878735987983b99492d885250d035/a8059/blogCover.webp 300w,\n/static/e89878735987983b99492d885250d035/9a858/blogCover.webp 600w,\n/static/e89878735987983b99492d885250d035/c3710/blogCover.webp 1200w","type":"image/webp","sizes":"(min-width: 600px) 600px, 100vw"}]},"width":600,"height":450}}}},"wordCount":{"words":129}}]}},"pageContext":{"limit":5,"skip":0,"pagesQuantity":2,"currentPage":1,"lang":"en","markupData":{"bannerTitle":"Well unknown facts","head":"CodeCave Blog","readPostLink":"Open article","readingTimeTitle":"Reading time","readingTimeUnits":"m","postFooterTitle":"Congratulations! Now you can show off with your new knowledge!","postFooterText":"If you want us to uncover some other Well unknown facts, you can contact us via the socials or e-mail below. See you!","sharePostTitle":"Share this post","readMoreOnTopicTitle":"Read more on","blogSectionTitle":"new in our blog","blogSectionLinkTitle":"all posts","image":{"childImageSharp":{"gatsbyImageData":{"layout":"constrained","placeholder":{"fallback":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAACXBIWXMAAAsTAAALEwEAmpwYAAAD1UlEQVR42pWUX0zTVxTHCwT501JKaWmBrsUV5N9gIixsuqgwlDCge7Hooli0yp9ZRR+0BdryxxU7oVCQgC3Kn1IMf0S3xLlMI2Mapw+a6JMGX9yMe3EPbvoimHw99xJJnIPpw82vub33ez7nnO89gqioKLzLkkqlkMvliI6O5r+XOid4FzEmFBkZiaCgIISFhSEiIoKLMvH3EnxNFRwcDI1GA4vFgry8PHyo1UIsFkMoFEImk71BvKQgOygSibiYXl+Ge/fu4+X8PC5f+hkOhwOmfSZkrc7ixOHh4Yu0gv+iYt+AgABotYnw+/2Ym5vDo0e/49zUJI47nejr7cXQ4BDcnW7UVNcgOzsbK1aEcGrBv6lYtNDQUOytrMTjx3/i+fNnuHv3DsbHx+AbHibRKTTa7XC1tWNsbAxdbjfG6Wsxm6GKVy0IMiGGHBgYiKysNbh48SeieoHZ2fu4dvVXDA0MwNXeDk9fH/wjI7h58wbOjI7CcsSMbncXBgdOw+v1ID09HQKWIqsD66KZojx58hf++fspZn6ZRmdHB4YHB9F+vA1ej4eo2jjZMUcrJscniK6LU/d0d6PJ3rggyCyQm5uLW7duY36eavXHQ/zw/Xn0e7041d/Pa+Y96eE0vmEfJicmUF1ZBVPNN+jt6eGp7qqoQN6GjdwJnDAjI4NHYh1sqKuDo+UoRkf8sFutOEkNsFlt2GUwoKW5mUjsGDh9Ctd/u4ZOlwtlej0+ycmBtb4BO7Zvh4DVLiQkBPFxcWhqbKRauehyBewNVkydPcvJeohk+so0Dpj2o+07J2ZmpvFgdhaObx3YuH49mumeTqdb6LJEIqHuxEOjVnPL6LdswYkT3TAfPgLDjnK0kud+vHAB9XX1VAIvX9VVVbyue4xGnhGzDXMGu79om5UJCUhOToaYapqelkYCdXAec2KvcQ8tI5ytrWhpaoKupBRRBJFDIpsKNkFNIEzsLWOLqcuMNjMjE6XFJRCSH4uKiqhuLZzyYG0t1n62Fh9RJ5kjNhcU4PN167hvme3eenrszUrooMGwE1/pSpFEr0ROB9UaNfabTCjcXEj12oBDtQfxRX4+PiVnlBQXLw6KNwTZBouUTw9/xOfj6bP91ZkfIykxkYgk2Fa2FUeJ1mazwWjcDZFQxJuw5LRh6SoUCqKSQ6P6AAlqDd9TqVT4eus2lJeXIzU1FV8WFiJOGcvT/t/xxQRer/jYOEpbC6VCSeWIgTJGgZSkVVDExCCS/pe+z4BlhxmBTBYNbcJKJCcmIS0lBbFKJQ+23AxddsCyywvCMkhYEE4mXVbwFQflxPovnsZUAAAAAElFTkSuQmCC"},"images":{"fallback":{"src":"/static/b358397f973ed74732db29698c1773d1/30cdc/blog.png","srcSet":"/static/b358397f973ed74732db29698c1773d1/7458e/blog.png 75w,\n/static/b358397f973ed74732db29698c1773d1/de3a1/blog.png 150w,\n/static/b358397f973ed74732db29698c1773d1/30cdc/blog.png 300w","sizes":"(min-width: 300px) 300px, 100vw"},"sources":[{"srcSet":"/static/b358397f973ed74732db29698c1773d1/eb54c/blog.avif 75w,\n/static/b358397f973ed74732db29698c1773d1/81307/blog.avif 150w,\n/static/b358397f973ed74732db29698c1773d1/aa5b9/blog.avif 300w","type":"image/avif","sizes":"(min-width: 300px) 300px, 100vw"},{"srcSet":"/static/b358397f973ed74732db29698c1773d1/18188/blog.webp 75w,\n/static/b358397f973ed74732db29698c1773d1/c65bc/blog.webp 150w,\n/static/b358397f973ed74732db29698c1773d1/078c3/blog.webp 300w","type":"image/webp","sizes":"(min-width: 300px) 300px, 100vw"}]},"width":300,"height":300}}}},"pagination":{"next":"Next page"},"site":{"siteUrl":"https://www.codecave.it"}}},"staticQueryHashes":["2595676272","2708699711"],"slicesMap":{}} \ No newline at end of file +{"componentChunkName":"component---src-pages-templates-blog-tsx","path":"/blog/page/1/","result":{"data":{"allMarkdownRemark":{"nodes":[{"id":"c924c93c-fac0-517e-92e7-c5b5aaa083c2","frontmatter":{"date":"21 Jun 2024","title":"Proxmox VM Templates and Cloud-Init","text":"In the world of virtualization, efficiency and automation are key. That's where Proxmox Virtual Environment (VE) comes into play, offering a robust solution for managing virtual machines (VMs) with ease. One of the most powerful features of Proxmox is its ability to use VM templates in conjunction with Cloud-Init, streamlining the deployment process and making it as smooth as a cloud....","cover":{"childImageSharp":{"gatsbyImageData":{"layout":"constrained","placeholder":{"fallback":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAIAAAAC64paAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAEz0lEQVR42gHEBDv7AAULGQUNHgQQIQIRJAIVKgQgOAYoQQcvSwk0UQw3UQ4+Wgs2UQ05VAovSQUfNQQYLQMTJQQPHwUNHAULGAAEDBwDDyACFioIMEsMP1wOP1sPRGIfcJEtkbEaXXsyi6gueZcaVnURT24FMUwFKkQEHzUDFikDDyAFDBsAAxIlBCA2AR00GGSEMZu8Glt5J2mHTJy4csDYgrfJmsPSqMvXkLjGaqS6RIaiJXKSBilDAxwyAxUpAw4fAAMYLAYuSggzTyZdekl/mF2InICis6S/yrDEztDf493q7dTj58/f48LT2ZGttz5ofRlYeA5HZgQdNAMSJAADGC4KMEsRUXFahpxzjp5vgZCHm6mrv8movMacsbuZr7ZxiJJbdYBNaHQ5TVsePFAviKgle50EJ0IDGCwABSM8KFt4KmyIOn6bOmV8Q2FzTmZ4PVVqO1ZsJDtNMU5fJkNUL0xbPWFxMllvR3CITZKsIGF+HEpmBCE4AAozTh9uj1aXsYOvwCBFWhEjMiM+Ux88VC1PZSA4SzFRZilKXy5NYjxngSVegXOPobrZ4UaRrSZkghM2UAANPlozd5W11N7E1dk7Y3gaLkArSWAjTGgrSmIeOU8mUGsjUm0qVnA2dpgnapBriZrG2N2iy9kxdZMUQ14AP3SPrMnWrL/Fgp6qYoWWPVVmIEJcH1h3KFFuG0RgH1NzIF6AJmmNM4qzKnabobrHtMzUtsnQnb/NK155AFKAl561vJauto6nsHSSn1t2hSBIZR1ghCZbfRtXeh1egx9tlCh4oTKNtSJihpGsubrQ2Ki+xqa8w0hzigA4aYKmvcW5zNGjucE7U2QmSGEfSGYcYYclZoobY4kbaZMea5Ahc58uirRJgaGlwtCsx9K4zNOrwspEcokAh6a1rb7CfpmkaomYSGBwFig9HElsInScIGWMFlZ8FVuFElaALH2jXbPVgrnSbpivWYKYf5ynvs/UdJaoAFF3iXeToZCps3yVolVzhBcnORFIbhZsmxphjDB5nzx1lz6Krz12mypegkx5lWmUqousvIyntGeDkFN4iQBJbX6uwMaOpq9oh5dUd4xshZR7q8BYrM4aXYdDi7BGc5FRfZh/qLxih55Re5KoyNa/1d3V5el2jJkoTF8AVnuMiqSvYoKTXH6QZYSWhKa2iqu7td3qj7bKRW2LI0hlUH+YosXUtM3XvdXfqsbTcpOjlrC5t8nQQGV5ACJIXB01SBwyRkdkd4qns1V1iF6BlIOjs73Y4n2brStScJrA0o+uvoSjsbvQ18DT2WF9jFBtfm2IlTBXawAZPlMnRVUkPEsvR1dcfI9ig5VZfpJ+oLB9nq1McolGdJF/prt3malpiJqNp7O70ddVZXIACRkcNkYcQlgACixDIklfOl9yQmRzGS9BEyI2Fyc4HTFEL0hbb4+gMl13ETJOM1NpPmF2Ql9xTGZ1MExeGjVHLUtdEzVMAAMgNQwvRh1EWjNabidEVQsdLwQYLQMbMh08U0ptgEx5jw4nPgIIFhUjMgkPHQwdLTFXaSRNZA8zSQUhNgACFigDHzUJLEMVOlIhSV4aPlQKOVQMN1EjUGhAcYlJeI0pUmkJITYDDh4GFicYNkgbQ1gLLkUDITYCFyk7gtmFiAfURwAAAABJRU5ErkJggg=="},"images":{"fallback":{"src":"/static/1218f3f01ec49437d381271c6bcea5e0/a89ca/intro.jpg","srcSet":"/static/1218f3f01ec49437d381271c6bcea5e0/96deb/intro.jpg 150w,\n/static/1218f3f01ec49437d381271c6bcea5e0/0fdf4/intro.jpg 300w,\n/static/1218f3f01ec49437d381271c6bcea5e0/a89ca/intro.jpg 600w","sizes":"(min-width: 600px) 600px, 100vw"},"sources":[{"srcSet":"/static/1218f3f01ec49437d381271c6bcea5e0/81307/intro.avif 150w,\n/static/1218f3f01ec49437d381271c6bcea5e0/aa5b9/intro.avif 300w,\n/static/1218f3f01ec49437d381271c6bcea5e0/0c8d0/intro.avif 600w","type":"image/avif","sizes":"(min-width: 600px) 600px, 100vw"},{"srcSet":"/static/1218f3f01ec49437d381271c6bcea5e0/c65bc/intro.webp 150w,\n/static/1218f3f01ec49437d381271c6bcea5e0/078c3/intro.webp 300w,\n/static/1218f3f01ec49437d381271c6bcea5e0/6d09e/intro.webp 600w","type":"image/webp","sizes":"(min-width: 600px) 600px, 100vw"}]},"width":600,"height":600}}}},"wordCount":{"words":659}},{"id":"e173a2ae-ebb5-5219-9479-035dde5fe8c8","frontmatter":{"date":"20 Jun 2024","title":"Self-Hosted build Agent for Azure Pipelines","text":"Welcome to our guide to installing the Azure Agent In this post, we'll cover the installation process, whether you're setting up a self-hosted agent for Azure Pipelines","cover":{"childImageSharp":{"gatsbyImageData":{"layout":"constrained","placeholder":{"fallback":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAIAAAAC64paAAAACXBIWXMAAAsSAAALEgHS3X78AAAEqUlEQVR42jVUC0xTVxhulmwzLts0xESjTKagQ9xE0SnETR1iRwsI8lbBLeAowgRxmELlUQSxTGiAUiwWoTw3yriWCuFVSgu1ZUBHKVZKYSChIFAYr9t7+7p390pMvpz8Oef/zv845/8INhSyYkCwFbYisAUzEBhBIBTFYcNsFLYhuIHiDtAWtlgEnIM5oUYLvmXCXFHUMmGEHy1ALRtGxAq+MYEQCoEwuAptYNchiBFBjdb3ZDyCfnNtEQbn19debYL9mn/3F/W7TcNxK5vZ+pVfp9f1VrhA2MebXZk1gn8ZoNdGI0axoPAW2TQGmgbmFtP7tPmTK2eTuPuedafOLLOGJ7y1hlOTG0mzq3GtAzS5VqAe79aq5i0msw3cimxZMUwDOuW9TrVXrdJVMm/foDimWyKPLnp16b7k9Xfq55JnliNVM8XPe0qkI0K5kq5bq1zESyCgqG1wZqpOP00pBgjEXE/ZfOCK+bjK8IVEv+dBy65cUdngKLlH+dubTUaDyKNQWKJQV6imZiEQ6x9hde2/czWaHWpor2LGuV5xOa38Gkdor7VGi7Wn89s/pTafAdRE6dTjXtVx39vkyISCxgbRwBA0rbCiCIHBFWyLKFC3+pZu1O+XLQfRq4kckWfdP5ldo04dqx9fLb6YUnGlvj+Q2+3Pav4qMss9h5vwQqrRjqKolXD74bPPbxUZrtsJKgM+qZu+1jfvVqXy4PQfqxy1i+d9+H38dxTmmVulHtTK4FaNg2+Sy73yiIaX4teTOFk3oXMulVFIocFU1iGeJrnjtWP91PaYyu0kGpHGeaDQkOvF7jeLnaKYN7MYh86E7SRSzz7pbOxToljay+vrzDL2hcQcB676aKHkQMYLp7Ds87TywJHZ0CVrQFWfXUD6AfewkyF3vkkq8S4ELhUKvi5sl8y9xR6Y0CVX7iYlBldLjmY+3++X5lXQED78hj2uv9g3f1g4tSso8+SNDCbtxpWoRLenMnKl1D2BdSKO9VA9h31EQs/LgQ8Oh/gw+OeLWy+3jbAnFxxfwTuT/3SNYTgEp53OA8hNgz/SK6KKqqJy8omPuLd5vKu5XGHvEF5zt3xw2yE/Ym4DRabzHV/9LJwZHHvH3j3c/1ZK6N0sbwbgVigKLO/yoORmUoIzJie8e5U+tJy8KiFOTmQDHx0J+SGt4lwSx7lE+m0kLSMuPonNv5THP3y3LAqQk6NoLo9b9qXw91zNvf6k6SduGxsQAiMDFiztxNLnBIcAx2hmRFmbazTDg9Vyv1l+JCTdo7Q9PLXEk8rLJp1ozLxQ0yW+Wcx/2K9NkI7VKoc1I2IbihIgC8ht6r5f1Sr5W8SJ9Y+Jjj1IF8TkcUKpnIOxnL10QRZfXJ36c6NcFsGTudT2kGqBIG7v2Mws3jCzDZsqNL30D7+CmrgyILui6VR8CSmbReH3+tB59OE5al37juQ6V3ZXJl/KqO/gdAwtLb01I8Z3I4mLhkk8oGoaGtcuGH6vELj+wvQDRoeWN8fW1g2oWSRR+N5hPhUp1o0QipgQPJjlvRi8EyAExUqwgmbQarNsGNdgyyaCwDYbLkz4EWJGEcuWSOHAxQfXn/8BLFwotU5H9gkAAAAASUVORK5CYII="},"images":{"fallback":{"src":"/static/5b09e340899c3ea191d650dd40043308/c7240/intro.png","srcSet":"/static/5b09e340899c3ea191d650dd40043308/de3a1/intro.png 150w,\n/static/5b09e340899c3ea191d650dd40043308/30cdc/intro.png 300w,\n/static/5b09e340899c3ea191d650dd40043308/c7240/intro.png 600w","sizes":"(min-width: 600px) 600px, 100vw"},"sources":[{"srcSet":"/static/5b09e340899c3ea191d650dd40043308/81307/intro.avif 150w,\n/static/5b09e340899c3ea191d650dd40043308/aa5b9/intro.avif 300w,\n/static/5b09e340899c3ea191d650dd40043308/0c8d0/intro.avif 600w","type":"image/avif","sizes":"(min-width: 600px) 600px, 100vw"},{"srcSet":"/static/5b09e340899c3ea191d650dd40043308/c65bc/intro.webp 150w,\n/static/5b09e340899c3ea191d650dd40043308/078c3/intro.webp 300w,\n/static/5b09e340899c3ea191d650dd40043308/6d09e/intro.webp 600w","type":"image/webp","sizes":"(min-width: 600px) 600px, 100vw"}]},"width":600,"height":600}}}},"wordCount":{"words":763}},{"id":"10582553-73a2-569f-8bdd-980e1f77c10a","frontmatter":{"date":"20 Jun 2024","title":"Streamlining Changelog Creation with Azure DevOps and Confluence","text":"In the fast-paced world of software development, maintaining a detailed record of changes is crucial. Changelogs serve as a vital tool, tracking every update, fix, or feature added to a project. Integrating Azure DevOps with Confluence can create a seamless changelog management system that enhances transparency and efficiency. This blog post explores how to automate changelog creation in Confluence using a PowerShell script that extracts release information from an Azure DevOps repository.","cover":{"childImageSharp":{"gatsbyImageData":{"layout":"constrained","placeholder":{"fallback":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAIAAAAC64paAAAACXBIWXMAAAsSAAALEgHS3X78AAAEj0lEQVR42iVS+VNaZxR9/1Hb3zJtp5NM00lNqmksmlg1imLU+NS4EASNuKK44BJQgyEKLk0QCYqyLwo8tse+vsf2QAU1RmtNJ+0PaeznZObMnTtnzrnf/e69kExt2bgCsqFB5FqbXGcFiUyNbOvtSoNjS2vb1Fq/CLb09i2dTa61yjUIYKRKE/RWZQYACgBgVhicO/ZAJHngCSftPiwQ2/dF04gnakZD2wYHqAhw5ddZNzUIpEe8FlcIRI3JhfpjQTxtdYW7+id1u479w5N5kWRVso2lc65gPIgTFjSkNDp1ZrfR6lUYHJDDhzn9MZsnihM5o81b+4R5u5DyazHFE8DwzJFSbbh5p7QGZjg9oeTesc0dQdAQMMtB/xorpN5FXYFYOL6nMrmHp4UVtU9rGmjkWmpX7zilrh1u7vz6Wl4rfRCxoi20gTW5ftcRtDhDTj+uN7shrcltRDw9w7yJl+vucMrtDYUjGPB/de32N9fybuWX3btPaaP1D4/xSCWPpmcWzQ6/0mhPZXKeUBwK48RfFx86Olkl5JaGtr7vfyz8vaqloo5+q+Bh/m+UojIYbh/Mu1tRWtlotbs+/P2P2x/ZVJu39A7lDgpFcMIXif/3+fMYh/ftjXvzy7JoKgvmJ1iW8oWS11JVJJm9XVil05suLy/xZObd6Tl4bNceMCA+SLSmvJ5XUl3f0UQdIMPd4M/tDDaROcATRCqTzRwcnpyeP6hsrm/sqIVpT+m9VZTmATbX5AwBPxTCiLv361icl7HMSSiRLa9pu18OewKReCqDeCIiidqCBtsY7PqW3u9uFpVUwM/5K3IdojA6VSYX5IskprgLz/rGGT1jg2xePqm6qp7mDUSxBOEOxmUaBOyiBu5qpA6AKfQOcxFngDu39Kx/anVdDbl8Uc4Uv481+biF2UTtv3mnvLGt1xeMEnsHQSytMKK+aKqwpP6Hn0gPKa2PGhnkOur1OxXTgjUseQBN81fa6QNFZQ3bOsuuI0BnjoENo55ggsjYfbhYYbZ7sReLa0OcOblqRyCS1DZ3d7O4m1qbDvFCQ9NC3ouldvrgjZ9LCkiU0kqY1sUORuPEfjaS2DehISx1QCqDB0e5ny4vTVY32KhIrOgeX5BpEWhJohydesWeFLwQSqfmlvtHZsEl2VBfIpUGlzi/Kn+zoS0ufcwcnHx/8REcfCdzhMtfGeYtB2IZaNvgrGpiCpbWQeF/P136o0m4tSeXOwrjqezR6dnFR75ISmNyePMrQGBxeFtpfeMzotmlTZnWDr3VObkCMZvDnxO85r96M8FbLC6DJybn/XhmZkHa1MFmjc/PCMSjXKFcY17f1IiW13iCN88XpGKlBSLDnXBb7zBn9knHQCO1H7THYI78QqK00oee0NkPyK0tNNYf60rWlLC8ll5AqqYyWOQ6Gp01qzF7IZXRvrZl1Fg8WotXbQbRo9xF36osi2IFWLLG4t3eQTe0VpBIFMZVqUYoVspUJocf8+FpKJk9SeVOY3vHAPH9L/FdMvc+ffxnInsS278iAQP41OEZcXSWOT4nDq/0GJH7H4wRHg5A4W/XAAAAAElFTkSuQmCC"},"images":{"fallback":{"src":"/static/1441f6fa5d6f422fe91db317638f9f32/c7240/intro.png","srcSet":"/static/1441f6fa5d6f422fe91db317638f9f32/de3a1/intro.png 150w,\n/static/1441f6fa5d6f422fe91db317638f9f32/30cdc/intro.png 300w,\n/static/1441f6fa5d6f422fe91db317638f9f32/c7240/intro.png 600w","sizes":"(min-width: 600px) 600px, 100vw"},"sources":[{"srcSet":"/static/1441f6fa5d6f422fe91db317638f9f32/81307/intro.avif 150w,\n/static/1441f6fa5d6f422fe91db317638f9f32/aa5b9/intro.avif 300w,\n/static/1441f6fa5d6f422fe91db317638f9f32/0c8d0/intro.avif 600w","type":"image/avif","sizes":"(min-width: 600px) 600px, 100vw"},{"srcSet":"/static/1441f6fa5d6f422fe91db317638f9f32/c65bc/intro.webp 150w,\n/static/1441f6fa5d6f422fe91db317638f9f32/078c3/intro.webp 300w,\n/static/1441f6fa5d6f422fe91db317638f9f32/6d09e/intro.webp 600w","type":"image/webp","sizes":"(min-width: 600px) 600px, 100vw"}]},"width":600,"height":600}}}},"wordCount":{"words":722}},{"id":"91d98aad-6ec6-5e71-b6ca-daff730c0ca4","frontmatter":{"date":"12 Jun 2023","title":"Awesome post 6","text":"Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source. Lorem Ipsum comes from sections 1.10.32 and 1.10.33 of \"de Finibus Bonorum et Malorum\" (The Extremes of Good and Evil) by Cicero, written in 45 BC. This book is a treatise on the theory of ethics, very popular during the Renaissance. The first line of Lorem Ipsum, \"Lorem ipsum dolor sit amet..\", comes from a line in section 1.10.32.","cover":{"childImageSharp":{"gatsbyImageData":{"layout":"constrained","placeholder":{"fallback":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAPCAYAAADkmO9VAAAACXBIWXMAAAsTAAALEwEAmpwYAAACPklEQVR42o1U227TQBDNf/HAl/WJZ15A6h+AWgoChESFqpDSNiRcSsJFApI0jUnT3Hy3d+31JYeZdUIiU0otrdZezZxz5sysK3aY4KbLDBLM/etjKlcdWledEVgUp8jSFI64IaArEx0sVZHkyhR+nCEkoDzPUetGuN/w8HHuQUSpJuacfwOKVJfUOI8w8xWEysBPEOd6v3sU4Nb2HE1DQhAJW1BWW1mVw7tHiqZegp12iEtXIUoKwK0DiXt1gQs3w4NPoSZdAfHulAElsbliHeTLpWdJjrHp4eDLFD+nMXy1QJZlcDVQYYtHsSZ9z/wNwGffiN1RCMmXVVPMgBUuMJ6YsGYW+bqgxIwAMkxIPfvLJbOY1jDCQ1LONlSYpdqRGBGgL9dKGTBOF+jaFr7OTNgU7MUR2oaDgbWuYmXTuaV0rlYo4uQPkBMW73weqRzb0wFu96rYcQZ47Bg4mUwRiBy2WDWyWJ7YKJml86FmDQtfxp7C236Il40uDNeEQgqRJWiNJMZUMiuzl7F/dZnBhrbSsrXJNDJNQ2H/9BeevBviUVthtx2jMYhx0rHJ7xgBAc6IdF4anYq1NPb4LMJzak5KN8Eg4GpH4JTM3mt52HpxiTuvLOz/iHRHuYqYhr9+LrH3OdTvZlAabA7i+WK13KCjnsAbItmttvG0+h7N7xcYWpFunLVUxaMyckoKy3fRWXpa7wscdgVqPYnDfoLaWawt2UzebOC1PwdeH+h61QiQlb7uhDTYkfbX+s8f6Td8JW7ht0aWRwAAAABJRU5ErkJggg=="},"images":{"fallback":{"src":"/static/e89878735987983b99492d885250d035/60da4/blogCover.png","srcSet":"/static/e89878735987983b99492d885250d035/17981/blogCover.png 150w,\n/static/e89878735987983b99492d885250d035/e9a60/blogCover.png 300w,\n/static/e89878735987983b99492d885250d035/60da4/blogCover.png 600w,\n/static/e89878735987983b99492d885250d035/a3486/blogCover.png 1200w","sizes":"(min-width: 600px) 600px, 100vw"},"sources":[{"srcSet":"/static/e89878735987983b99492d885250d035/e625e/blogCover.avif 150w,\n/static/e89878735987983b99492d885250d035/2574e/blogCover.avif 300w,\n/static/e89878735987983b99492d885250d035/d3834/blogCover.avif 600w,\n/static/e89878735987983b99492d885250d035/387a3/blogCover.avif 1200w","type":"image/avif","sizes":"(min-width: 600px) 600px, 100vw"},{"srcSet":"/static/e89878735987983b99492d885250d035/e80bb/blogCover.webp 150w,\n/static/e89878735987983b99492d885250d035/a8059/blogCover.webp 300w,\n/static/e89878735987983b99492d885250d035/9a858/blogCover.webp 600w,\n/static/e89878735987983b99492d885250d035/c3710/blogCover.webp 1200w","type":"image/webp","sizes":"(min-width: 600px) 600px, 100vw"}]},"width":600,"height":450}}}},"wordCount":{"words":707}},{"id":"1f201db1-7d1d-5ef0-b138-fe7b3dc57ba8","frontmatter":{"date":"11 Jun 2023","title":"Awesome post 5","text":"Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source. Lorem Ipsum comes from sections 1.10.32 and 1.10.33 of \"de Finibus Bonorum et Malorum\" (The Extremes of Good and Evil) by Cicero, written in 45 BC. This book is a treatise on the theory of ethics, very popular during the Renaissance. The first line of Lorem Ipsum, \"Lorem ipsum dolor sit amet..\", comes from a line in section 1.10.32.","cover":{"childImageSharp":{"gatsbyImageData":{"layout":"constrained","placeholder":{"fallback":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAPCAYAAADkmO9VAAAACXBIWXMAAAsTAAALEwEAmpwYAAACPklEQVR42o1U227TQBDNf/HAl/WJZ15A6h+AWgoChESFqpDSNiRcSsJFApI0jUnT3Hy3d+31JYeZdUIiU0otrdZezZxz5sysK3aY4KbLDBLM/etjKlcdWledEVgUp8jSFI64IaArEx0sVZHkyhR+nCEkoDzPUetGuN/w8HHuQUSpJuacfwOKVJfUOI8w8xWEysBPEOd6v3sU4Nb2HE1DQhAJW1BWW1mVw7tHiqZegp12iEtXIUoKwK0DiXt1gQs3w4NPoSZdAfHulAElsbliHeTLpWdJjrHp4eDLFD+nMXy1QJZlcDVQYYtHsSZ9z/wNwGffiN1RCMmXVVPMgBUuMJ6YsGYW+bqgxIwAMkxIPfvLJbOY1jDCQ1LONlSYpdqRGBGgL9dKGTBOF+jaFr7OTNgU7MUR2oaDgbWuYmXTuaV0rlYo4uQPkBMW73weqRzb0wFu96rYcQZ47Bg4mUwRiBy2WDWyWJ7YKJml86FmDQtfxp7C236Il40uDNeEQgqRJWiNJMZUMiuzl7F/dZnBhrbSsrXJNDJNQ2H/9BeevBviUVthtx2jMYhx0rHJ7xgBAc6IdF4anYq1NPb4LMJzak5KN8Eg4GpH4JTM3mt52HpxiTuvLOz/iHRHuYqYhr9+LrH3OdTvZlAabA7i+WK13KCjnsAbItmttvG0+h7N7xcYWpFunLVUxaMyckoKy3fRWXpa7wscdgVqPYnDfoLaWawt2UzebOC1PwdeH+h61QiQlb7uhDTYkfbX+s8f6Td8JW7ht0aWRwAAAABJRU5ErkJggg=="},"images":{"fallback":{"src":"/static/e89878735987983b99492d885250d035/60da4/blogCover.png","srcSet":"/static/e89878735987983b99492d885250d035/17981/blogCover.png 150w,\n/static/e89878735987983b99492d885250d035/e9a60/blogCover.png 300w,\n/static/e89878735987983b99492d885250d035/60da4/blogCover.png 600w,\n/static/e89878735987983b99492d885250d035/a3486/blogCover.png 1200w","sizes":"(min-width: 600px) 600px, 100vw"},"sources":[{"srcSet":"/static/e89878735987983b99492d885250d035/e625e/blogCover.avif 150w,\n/static/e89878735987983b99492d885250d035/2574e/blogCover.avif 300w,\n/static/e89878735987983b99492d885250d035/d3834/blogCover.avif 600w,\n/static/e89878735987983b99492d885250d035/387a3/blogCover.avif 1200w","type":"image/avif","sizes":"(min-width: 600px) 600px, 100vw"},{"srcSet":"/static/e89878735987983b99492d885250d035/e80bb/blogCover.webp 150w,\n/static/e89878735987983b99492d885250d035/a8059/blogCover.webp 300w,\n/static/e89878735987983b99492d885250d035/9a858/blogCover.webp 600w,\n/static/e89878735987983b99492d885250d035/c3710/blogCover.webp 1200w","type":"image/webp","sizes":"(min-width: 600px) 600px, 100vw"}]},"width":600,"height":450}}}},"wordCount":{"words":614}}]}},"pageContext":{"limit":5,"skip":0,"pagesQuantity":2,"currentPage":1,"lang":"en","markupData":{"bannerTitle":"Well unknown facts","head":"CodeCave Blog","readPostLink":"Open article","readingTimeTitle":"Reading time","readingTimeUnits":"m","postFooterTitle":"Congratulations! Now you can show off with your new knowledge!","postFooterText":"If you want us to uncover some other Well unknown facts, you can contact us via the socials or e-mail below. See you!","sharePostTitle":"Share this post","readMoreOnTopicTitle":"Read more on","blogSectionTitle":"new in our blog","blogSectionLinkTitle":"all posts","image":{"childImageSharp":{"gatsbyImageData":{"layout":"constrained","placeholder":{"fallback":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAACXBIWXMAAAsTAAALEwEAmpwYAAAD1UlEQVR42pWUX0zTVxTHCwT501JKaWmBrsUV5N9gIixsuqgwlDCge7Hooli0yp9ZRR+0BdryxxU7oVCQgC3Kn1IMf0S3xLlMI2Mapw+a6JMGX9yMe3EPbvoimHw99xJJnIPpw82vub33ez7nnO89gqioKLzLkkqlkMvliI6O5r+XOid4FzEmFBkZiaCgIISFhSEiIoKLMvH3EnxNFRwcDI1GA4vFgry8PHyo1UIsFkMoFEImk71BvKQgOygSibiYXl+Ge/fu4+X8PC5f+hkOhwOmfSZkrc7ixOHh4Yu0gv+iYt+AgABotYnw+/2Ym5vDo0e/49zUJI47nejr7cXQ4BDcnW7UVNcgOzsbK1aEcGrBv6lYtNDQUOytrMTjx3/i+fNnuHv3DsbHx+AbHibRKTTa7XC1tWNsbAxdbjfG6Wsxm6GKVy0IMiGGHBgYiKysNbh48SeieoHZ2fu4dvVXDA0MwNXeDk9fH/wjI7h58wbOjI7CcsSMbncXBgdOw+v1ID09HQKWIqsD66KZojx58hf++fspZn6ZRmdHB4YHB9F+vA1ej4eo2jjZMUcrJscniK6LU/d0d6PJ3rggyCyQm5uLW7duY36eavXHQ/zw/Xn0e7041d/Pa+Y96eE0vmEfJicmUF1ZBVPNN+jt6eGp7qqoQN6GjdwJnDAjI4NHYh1sqKuDo+UoRkf8sFutOEkNsFlt2GUwoKW5mUjsGDh9Ctd/u4ZOlwtlej0+ycmBtb4BO7Zvh4DVLiQkBPFxcWhqbKRauehyBewNVkydPcvJeohk+so0Dpj2o+07J2ZmpvFgdhaObx3YuH49mumeTqdb6LJEIqHuxEOjVnPL6LdswYkT3TAfPgLDjnK0kud+vHAB9XX1VAIvX9VVVbyue4xGnhGzDXMGu79om5UJCUhOToaYapqelkYCdXAec2KvcQ8tI5ytrWhpaoKupBRRBJFDIpsKNkFNIEzsLWOLqcuMNjMjE6XFJRCSH4uKiqhuLZzyYG0t1n62Fh9RJ5kjNhcU4PN167hvme3eenrszUrooMGwE1/pSpFEr0ROB9UaNfabTCjcXEj12oBDtQfxRX4+PiVnlBQXLw6KNwTZBouUTw9/xOfj6bP91ZkfIykxkYgk2Fa2FUeJ1mazwWjcDZFQxJuw5LRh6SoUCqKSQ6P6AAlqDd9TqVT4eus2lJeXIzU1FV8WFiJOGcvT/t/xxQRer/jYOEpbC6VCSeWIgTJGgZSkVVDExCCS/pe+z4BlhxmBTBYNbcJKJCcmIS0lBbFKJQ+23AxddsCyywvCMkhYEE4mXVbwFQflxPovnsZUAAAAAElFTkSuQmCC"},"images":{"fallback":{"src":"/static/b358397f973ed74732db29698c1773d1/30cdc/blog.png","srcSet":"/static/b358397f973ed74732db29698c1773d1/7458e/blog.png 75w,\n/static/b358397f973ed74732db29698c1773d1/de3a1/blog.png 150w,\n/static/b358397f973ed74732db29698c1773d1/30cdc/blog.png 300w","sizes":"(min-width: 300px) 300px, 100vw"},"sources":[{"srcSet":"/static/b358397f973ed74732db29698c1773d1/eb54c/blog.avif 75w,\n/static/b358397f973ed74732db29698c1773d1/81307/blog.avif 150w,\n/static/b358397f973ed74732db29698c1773d1/aa5b9/blog.avif 300w","type":"image/avif","sizes":"(min-width: 300px) 300px, 100vw"},{"srcSet":"/static/b358397f973ed74732db29698c1773d1/18188/blog.webp 75w,\n/static/b358397f973ed74732db29698c1773d1/c65bc/blog.webp 150w,\n/static/b358397f973ed74732db29698c1773d1/078c3/blog.webp 300w","type":"image/webp","sizes":"(min-width: 300px) 300px, 100vw"}]},"width":300,"height":300}}}},"pagination":{"next":"Next page"},"site":{"siteUrl":"https://www.codecave.it"}}},"staticQueryHashes":["2595676272","2708699711"],"slicesMap":{}} \ No newline at end of file diff --git a/page-data/blog/page/2/page-data.json b/page-data/blog/page/2/page-data.json index 37142645..d428a2ec 100644 --- a/page-data/blog/page/2/page-data.json +++ b/page-data/blog/page/2/page-data.json @@ -1 +1 @@ -{"componentChunkName":"component---src-pages-templates-blog-tsx","path":"/blog/page/2/","result":{"data":{"allMarkdownRemark":{"nodes":[{"id":"45775c6a-7cd8-5018-9047-afbec09abf59","frontmatter":{"date":"05 Jun 2023","title":"Awesome post 1","text":"Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source. Lorem Ipsum comes from sections 1.10.32 and 1.10.33 of \"de Finibus Bonorum et Malorum\" (The Extremes of Good and Evil) by Cicero, written in 45 BC. This book is a treatise on the theory of ethics, very popular during the Renaissance. The first line of Lorem Ipsum, \"Lorem ipsum dolor sit amet..\", comes from a line in section 1.10.32.","cover":{"childImageSharp":{"gatsbyImageData":{"layout":"constrained","placeholder":{"fallback":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAPCAYAAADkmO9VAAAACXBIWXMAAAsTAAALEwEAmpwYAAACPklEQVR42o1U227TQBDNf/HAl/WJZ15A6h+AWgoChESFqpDSNiRcSsJFApI0jUnT3Hy3d+31JYeZdUIiU0otrdZezZxz5sysK3aY4KbLDBLM/etjKlcdWledEVgUp8jSFI64IaArEx0sVZHkyhR+nCEkoDzPUetGuN/w8HHuQUSpJuacfwOKVJfUOI8w8xWEysBPEOd6v3sU4Nb2HE1DQhAJW1BWW1mVw7tHiqZegp12iEtXIUoKwK0DiXt1gQs3w4NPoSZdAfHulAElsbliHeTLpWdJjrHp4eDLFD+nMXy1QJZlcDVQYYtHsSZ9z/wNwGffiN1RCMmXVVPMgBUuMJ6YsGYW+bqgxIwAMkxIPfvLJbOY1jDCQ1LONlSYpdqRGBGgL9dKGTBOF+jaFr7OTNgU7MUR2oaDgbWuYmXTuaV0rlYo4uQPkBMW73weqRzb0wFu96rYcQZ47Bg4mUwRiBy2WDWyWJ7YKJml86FmDQtfxp7C236Il40uDNeEQgqRJWiNJMZUMiuzl7F/dZnBhrbSsrXJNDJNQ2H/9BeevBviUVthtx2jMYhx0rHJ7xgBAc6IdF4anYq1NPb4LMJzak5KN8Eg4GpH4JTM3mt52HpxiTuvLOz/iHRHuYqYhr9+LrH3OdTvZlAabA7i+WK13KCjnsAbItmttvG0+h7N7xcYWpFunLVUxaMyckoKy3fRWXpa7wscdgVqPYnDfoLaWawt2UzebOC1PwdeH+h61QiQlb7uhDTYkfbX+s8f6Td8JW7ht0aWRwAAAABJRU5ErkJggg=="},"images":{"fallback":{"src":"/static/e89878735987983b99492d885250d035/60da4/blogCover.png","srcSet":"/static/e89878735987983b99492d885250d035/17981/blogCover.png 150w,\n/static/e89878735987983b99492d885250d035/e9a60/blogCover.png 300w,\n/static/e89878735987983b99492d885250d035/60da4/blogCover.png 600w,\n/static/e89878735987983b99492d885250d035/a3486/blogCover.png 1200w","sizes":"(min-width: 600px) 600px, 100vw"},"sources":[{"srcSet":"/static/e89878735987983b99492d885250d035/e625e/blogCover.avif 150w,\n/static/e89878735987983b99492d885250d035/2574e/blogCover.avif 300w,\n/static/e89878735987983b99492d885250d035/d3834/blogCover.avif 600w,\n/static/e89878735987983b99492d885250d035/387a3/blogCover.avif 1200w","type":"image/avif","sizes":"(min-width: 600px) 600px, 100vw"},{"srcSet":"/static/e89878735987983b99492d885250d035/e80bb/blogCover.webp 150w,\n/static/e89878735987983b99492d885250d035/a8059/blogCover.webp 300w,\n/static/e89878735987983b99492d885250d035/9a858/blogCover.webp 600w,\n/static/e89878735987983b99492d885250d035/c3710/blogCover.webp 1200w","type":"image/webp","sizes":"(min-width: 600px) 600px, 100vw"}]},"width":600,"height":450}}}},"wordCount":{"words":608}}]}},"pageContext":{"limit":5,"skip":5,"pagesQuantity":2,"currentPage":2,"lang":"en","markupData":{"bannerTitle":"Well unknown facts","head":"CodeCave Blog","readPostLink":"Open article","readingTimeTitle":"Reading time","readingTimeUnits":"m","postFooterTitle":"Congratulations! Now you can show off with your new knowledge!","postFooterText":"If you want us to uncover some other Well unknown facts, you can contact us via the socials or e-mail below. See you!","sharePostTitle":"Share this post","readMoreOnTopicTitle":"Read more on","blogSectionTitle":"new in our blog","blogSectionLinkTitle":"all posts","image":{"childImageSharp":{"gatsbyImageData":{"layout":"constrained","placeholder":{"fallback":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAACXBIWXMAAAsTAAALEwEAmpwYAAAD1UlEQVR42pWUX0zTVxTHCwT501JKaWmBrsUV5N9gIixsuqgwlDCge7Hooli0yp9ZRR+0BdryxxU7oVCQgC3Kn1IMf0S3xLlMI2Mapw+a6JMGX9yMe3EPbvoimHw99xJJnIPpw82vub33ez7nnO89gqioKLzLkkqlkMvliI6O5r+XOid4FzEmFBkZiaCgIISFhSEiIoKLMvH3EnxNFRwcDI1GA4vFgry8PHyo1UIsFkMoFEImk71BvKQgOygSibiYXl+Ge/fu4+X8PC5f+hkOhwOmfSZkrc7ixOHh4Yu0gv+iYt+AgABotYnw+/2Ym5vDo0e/49zUJI47nejr7cXQ4BDcnW7UVNcgOzsbK1aEcGrBv6lYtNDQUOytrMTjx3/i+fNnuHv3DsbHx+AbHibRKTTa7XC1tWNsbAxdbjfG6Wsxm6GKVy0IMiGGHBgYiKysNbh48SeieoHZ2fu4dvVXDA0MwNXeDk9fH/wjI7h58wbOjI7CcsSMbncXBgdOw+v1ID09HQKWIqsD66KZojx58hf++fspZn6ZRmdHB4YHB9F+vA1ej4eo2jjZMUcrJscniK6LU/d0d6PJ3rggyCyQm5uLW7duY36eavXHQ/zw/Xn0e7041d/Pa+Y96eE0vmEfJicmUF1ZBVPNN+jt6eGp7qqoQN6GjdwJnDAjI4NHYh1sqKuDo+UoRkf8sFutOEkNsFlt2GUwoKW5mUjsGDh9Ctd/u4ZOlwtlej0+ycmBtb4BO7Zvh4DVLiQkBPFxcWhqbKRauehyBewNVkydPcvJeohk+so0Dpj2o+07J2ZmpvFgdhaObx3YuH49mumeTqdb6LJEIqHuxEOjVnPL6LdswYkT3TAfPgLDjnK0kud+vHAB9XX1VAIvX9VVVbyue4xGnhGzDXMGu79om5UJCUhOToaYapqelkYCdXAec2KvcQ8tI5ytrWhpaoKupBRRBJFDIpsKNkFNIEzsLWOLqcuMNjMjE6XFJRCSH4uKiqhuLZzyYG0t1n62Fh9RJ5kjNhcU4PN167hvme3eenrszUrooMGwE1/pSpFEr0ROB9UaNfabTCjcXEj12oBDtQfxRX4+PiVnlBQXLw6KNwTZBouUTw9/xOfj6bP91ZkfIykxkYgk2Fa2FUeJ1mazwWjcDZFQxJuw5LRh6SoUCqKSQ6P6AAlqDd9TqVT4eus2lJeXIzU1FV8WFiJOGcvT/t/xxQRer/jYOEpbC6VCSeWIgTJGgZSkVVDExCCS/pe+z4BlhxmBTBYNbcJKJCcmIS0lBbFKJQ+23AxddsCyywvCMkhYEE4mXVbwFQflxPovnsZUAAAAAElFTkSuQmCC"},"images":{"fallback":{"src":"/static/b358397f973ed74732db29698c1773d1/30cdc/blog.png","srcSet":"/static/b358397f973ed74732db29698c1773d1/7458e/blog.png 75w,\n/static/b358397f973ed74732db29698c1773d1/de3a1/blog.png 150w,\n/static/b358397f973ed74732db29698c1773d1/30cdc/blog.png 300w","sizes":"(min-width: 300px) 300px, 100vw"},"sources":[{"srcSet":"/static/b358397f973ed74732db29698c1773d1/eb54c/blog.avif 75w,\n/static/b358397f973ed74732db29698c1773d1/81307/blog.avif 150w,\n/static/b358397f973ed74732db29698c1773d1/aa5b9/blog.avif 300w","type":"image/avif","sizes":"(min-width: 300px) 300px, 100vw"},{"srcSet":"/static/b358397f973ed74732db29698c1773d1/18188/blog.webp 75w,\n/static/b358397f973ed74732db29698c1773d1/c65bc/blog.webp 150w,\n/static/b358397f973ed74732db29698c1773d1/078c3/blog.webp 300w","type":"image/webp","sizes":"(min-width: 300px) 300px, 100vw"}]},"width":300,"height":300}}}},"pagination":{"next":"Next page"},"site":{"siteUrl":"https://www.codecave.it"}}},"staticQueryHashes":["2595676272","2708699711"],"slicesMap":{}} \ No newline at end of file +{"componentChunkName":"component---src-pages-templates-blog-tsx","path":"/blog/page/2/","result":{"data":{"allMarkdownRemark":{"nodes":[{"id":"f7437acb-56dc-5ec6-9370-7726f39da57a","frontmatter":{"date":"10 Jun 2023","title":"Awesome post 4","text":"Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source. Lorem Ipsum comes from sections 1.10.32 and 1.10.33 of \"de Finibus Bonorum et Malorum\" (The Extremes of Good and Evil) by Cicero, written in 45 BC. This book is a treatise on the theory of ethics, very popular during the Renaissance. The first line of Lorem Ipsum, \"Lorem ipsum dolor sit amet..\", comes from a line in section 1.10.32.","cover":{"childImageSharp":{"gatsbyImageData":{"layout":"constrained","placeholder":{"fallback":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAPCAYAAADkmO9VAAAACXBIWXMAAAsTAAALEwEAmpwYAAACPklEQVR42o1U227TQBDNf/HAl/WJZ15A6h+AWgoChESFqpDSNiRcSsJFApI0jUnT3Hy3d+31JYeZdUIiU0otrdZezZxz5sysK3aY4KbLDBLM/etjKlcdWledEVgUp8jSFI64IaArEx0sVZHkyhR+nCEkoDzPUetGuN/w8HHuQUSpJuacfwOKVJfUOI8w8xWEysBPEOd6v3sU4Nb2HE1DQhAJW1BWW1mVw7tHiqZegp12iEtXIUoKwK0DiXt1gQs3w4NPoSZdAfHulAElsbliHeTLpWdJjrHp4eDLFD+nMXy1QJZlcDVQYYtHsSZ9z/wNwGffiN1RCMmXVVPMgBUuMJ6YsGYW+bqgxIwAMkxIPfvLJbOY1jDCQ1LONlSYpdqRGBGgL9dKGTBOF+jaFr7OTNgU7MUR2oaDgbWuYmXTuaV0rlYo4uQPkBMW73weqRzb0wFu96rYcQZ47Bg4mUwRiBy2WDWyWJ7YKJml86FmDQtfxp7C236Il40uDNeEQgqRJWiNJMZUMiuzl7F/dZnBhrbSsrXJNDJNQ2H/9BeevBviUVthtx2jMYhx0rHJ7xgBAc6IdF4anYq1NPb4LMJzak5KN8Eg4GpH4JTM3mt52HpxiTuvLOz/iHRHuYqYhr9+LrH3OdTvZlAabA7i+WK13KCjnsAbItmttvG0+h7N7xcYWpFunLVUxaMyckoKy3fRWXpa7wscdgVqPYnDfoLaWawt2UzebOC1PwdeH+h61QiQlb7uhDTYkfbX+s8f6Td8JW7ht0aWRwAAAABJRU5ErkJggg=="},"images":{"fallback":{"src":"/static/e89878735987983b99492d885250d035/60da4/blogCover.png","srcSet":"/static/e89878735987983b99492d885250d035/17981/blogCover.png 150w,\n/static/e89878735987983b99492d885250d035/e9a60/blogCover.png 300w,\n/static/e89878735987983b99492d885250d035/60da4/blogCover.png 600w,\n/static/e89878735987983b99492d885250d035/a3486/blogCover.png 1200w","sizes":"(min-width: 600px) 600px, 100vw"},"sources":[{"srcSet":"/static/e89878735987983b99492d885250d035/e625e/blogCover.avif 150w,\n/static/e89878735987983b99492d885250d035/2574e/blogCover.avif 300w,\n/static/e89878735987983b99492d885250d035/d3834/blogCover.avif 600w,\n/static/e89878735987983b99492d885250d035/387a3/blogCover.avif 1200w","type":"image/avif","sizes":"(min-width: 600px) 600px, 100vw"},{"srcSet":"/static/e89878735987983b99492d885250d035/e80bb/blogCover.webp 150w,\n/static/e89878735987983b99492d885250d035/a8059/blogCover.webp 300w,\n/static/e89878735987983b99492d885250d035/9a858/blogCover.webp 600w,\n/static/e89878735987983b99492d885250d035/c3710/blogCover.webp 1200w","type":"image/webp","sizes":"(min-width: 600px) 600px, 100vw"}]},"width":600,"height":450}}}},"wordCount":{"words":610}},{"id":"aa06b558-51ae-5f78-9989-0baadffbbc36","frontmatter":{"date":"08 Jun 2023","title":"Awesome post 2","text":"Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source. Lorem Ipsum comes from sections 1.10.32 and 1.10.33 of \"de Finibus Bonorum et Malorum\" (The Extremes of Good and Evil) by Cicero, written in 45 BC. This book is a treatise on the theory of ethics, very popular during the Renaissance. The first line of Lorem Ipsum, \"Lorem ipsum dolor sit amet..\", comes from a line in section 1.10.32.","cover":{"childImageSharp":{"gatsbyImageData":{"layout":"constrained","placeholder":{"fallback":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAPCAYAAADkmO9VAAAACXBIWXMAAAsTAAALEwEAmpwYAAACPklEQVR42o1U227TQBDNf/HAl/WJZ15A6h+AWgoChESFqpDSNiRcSsJFApI0jUnT3Hy3d+31JYeZdUIiU0otrdZezZxz5sysK3aY4KbLDBLM/etjKlcdWledEVgUp8jSFI64IaArEx0sVZHkyhR+nCEkoDzPUetGuN/w8HHuQUSpJuacfwOKVJfUOI8w8xWEysBPEOd6v3sU4Nb2HE1DQhAJW1BWW1mVw7tHiqZegp12iEtXIUoKwK0DiXt1gQs3w4NPoSZdAfHulAElsbliHeTLpWdJjrHp4eDLFD+nMXy1QJZlcDVQYYtHsSZ9z/wNwGffiN1RCMmXVVPMgBUuMJ6YsGYW+bqgxIwAMkxIPfvLJbOY1jDCQ1LONlSYpdqRGBGgL9dKGTBOF+jaFr7OTNgU7MUR2oaDgbWuYmXTuaV0rlYo4uQPkBMW73weqRzb0wFu96rYcQZ47Bg4mUwRiBy2WDWyWJ7YKJml86FmDQtfxp7C236Il40uDNeEQgqRJWiNJMZUMiuzl7F/dZnBhrbSsrXJNDJNQ2H/9BeevBviUVthtx2jMYhx0rHJ7xgBAc6IdF4anYq1NPb4LMJzak5KN8Eg4GpH4JTM3mt52HpxiTuvLOz/iHRHuYqYhr9+LrH3OdTvZlAabA7i+WK13KCjnsAbItmttvG0+h7N7xcYWpFunLVUxaMyckoKy3fRWXpa7wscdgVqPYnDfoLaWawt2UzebOC1PwdeH+h61QiQlb7uhDTYkfbX+s8f6Td8JW7ht0aWRwAAAABJRU5ErkJggg=="},"images":{"fallback":{"src":"/static/e89878735987983b99492d885250d035/60da4/blogCover.png","srcSet":"/static/e89878735987983b99492d885250d035/17981/blogCover.png 150w,\n/static/e89878735987983b99492d885250d035/e9a60/blogCover.png 300w,\n/static/e89878735987983b99492d885250d035/60da4/blogCover.png 600w,\n/static/e89878735987983b99492d885250d035/a3486/blogCover.png 1200w","sizes":"(min-width: 600px) 600px, 100vw"},"sources":[{"srcSet":"/static/e89878735987983b99492d885250d035/e625e/blogCover.avif 150w,\n/static/e89878735987983b99492d885250d035/2574e/blogCover.avif 300w,\n/static/e89878735987983b99492d885250d035/d3834/blogCover.avif 600w,\n/static/e89878735987983b99492d885250d035/387a3/blogCover.avif 1200w","type":"image/avif","sizes":"(min-width: 600px) 600px, 100vw"},{"srcSet":"/static/e89878735987983b99492d885250d035/e80bb/blogCover.webp 150w,\n/static/e89878735987983b99492d885250d035/a8059/blogCover.webp 300w,\n/static/e89878735987983b99492d885250d035/9a858/blogCover.webp 600w,\n/static/e89878735987983b99492d885250d035/c3710/blogCover.webp 1200w","type":"image/webp","sizes":"(min-width: 600px) 600px, 100vw"}]},"width":600,"height":450}}}},"wordCount":{"words":129}},{"id":"6a129001-a171-5d7e-9555-a943ae9d624f","frontmatter":{"date":"07 Jun 2023","title":"Awesome post 3","text":"Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source. Lorem Ipsum comes from sections 1.10.32 and 1.10.33 of \"de Finibus Bonorum et Malorum\" (The Extremes of Good and Evil) by Cicero, written in 45 BC. This book is a treatise on the theory of ethics, very popular during the Renaissance. The first line of Lorem Ipsum, \"Lorem ipsum dolor sit amet..\", comes from a line in section 1.10.32.","cover":{"childImageSharp":{"gatsbyImageData":{"layout":"constrained","placeholder":{"fallback":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAPCAYAAADkmO9VAAAACXBIWXMAAAsTAAALEwEAmpwYAAACPklEQVR42o1U227TQBDNf/HAl/WJZ15A6h+AWgoChESFqpDSNiRcSsJFApI0jUnT3Hy3d+31JYeZdUIiU0otrdZezZxz5sysK3aY4KbLDBLM/etjKlcdWledEVgUp8jSFI64IaArEx0sVZHkyhR+nCEkoDzPUetGuN/w8HHuQUSpJuacfwOKVJfUOI8w8xWEysBPEOd6v3sU4Nb2HE1DQhAJW1BWW1mVw7tHiqZegp12iEtXIUoKwK0DiXt1gQs3w4NPoSZdAfHulAElsbliHeTLpWdJjrHp4eDLFD+nMXy1QJZlcDVQYYtHsSZ9z/wNwGffiN1RCMmXVVPMgBUuMJ6YsGYW+bqgxIwAMkxIPfvLJbOY1jDCQ1LONlSYpdqRGBGgL9dKGTBOF+jaFr7OTNgU7MUR2oaDgbWuYmXTuaV0rlYo4uQPkBMW73weqRzb0wFu96rYcQZ47Bg4mUwRiBy2WDWyWJ7YKJml86FmDQtfxp7C236Il40uDNeEQgqRJWiNJMZUMiuzl7F/dZnBhrbSsrXJNDJNQ2H/9BeevBviUVthtx2jMYhx0rHJ7xgBAc6IdF4anYq1NPb4LMJzak5KN8Eg4GpH4JTM3mt52HpxiTuvLOz/iHRHuYqYhr9+LrH3OdTvZlAabA7i+WK13KCjnsAbItmttvG0+h7N7xcYWpFunLVUxaMyckoKy3fRWXpa7wscdgVqPYnDfoLaWawt2UzebOC1PwdeH+h61QiQlb7uhDTYkfbX+s8f6Td8JW7ht0aWRwAAAABJRU5ErkJggg=="},"images":{"fallback":{"src":"/static/e89878735987983b99492d885250d035/60da4/blogCover.png","srcSet":"/static/e89878735987983b99492d885250d035/17981/blogCover.png 150w,\n/static/e89878735987983b99492d885250d035/e9a60/blogCover.png 300w,\n/static/e89878735987983b99492d885250d035/60da4/blogCover.png 600w,\n/static/e89878735987983b99492d885250d035/a3486/blogCover.png 1200w","sizes":"(min-width: 600px) 600px, 100vw"},"sources":[{"srcSet":"/static/e89878735987983b99492d885250d035/e625e/blogCover.avif 150w,\n/static/e89878735987983b99492d885250d035/2574e/blogCover.avif 300w,\n/static/e89878735987983b99492d885250d035/d3834/blogCover.avif 600w,\n/static/e89878735987983b99492d885250d035/387a3/blogCover.avif 1200w","type":"image/avif","sizes":"(min-width: 600px) 600px, 100vw"},{"srcSet":"/static/e89878735987983b99492d885250d035/e80bb/blogCover.webp 150w,\n/static/e89878735987983b99492d885250d035/a8059/blogCover.webp 300w,\n/static/e89878735987983b99492d885250d035/9a858/blogCover.webp 600w,\n/static/e89878735987983b99492d885250d035/c3710/blogCover.webp 1200w","type":"image/webp","sizes":"(min-width: 600px) 600px, 100vw"}]},"width":600,"height":450}}}},"wordCount":{"words":129}},{"id":"45775c6a-7cd8-5018-9047-afbec09abf59","frontmatter":{"date":"05 Jun 2023","title":"Awesome post 1","text":"Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source. Lorem Ipsum comes from sections 1.10.32 and 1.10.33 of \"de Finibus Bonorum et Malorum\" (The Extremes of Good and Evil) by Cicero, written in 45 BC. This book is a treatise on the theory of ethics, very popular during the Renaissance. The first line of Lorem Ipsum, \"Lorem ipsum dolor sit amet..\", comes from a line in section 1.10.32.","cover":{"childImageSharp":{"gatsbyImageData":{"layout":"constrained","placeholder":{"fallback":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAPCAYAAADkmO9VAAAACXBIWXMAAAsTAAALEwEAmpwYAAACPklEQVR42o1U227TQBDNf/HAl/WJZ15A6h+AWgoChESFqpDSNiRcSsJFApI0jUnT3Hy3d+31JYeZdUIiU0otrdZezZxz5sysK3aY4KbLDBLM/etjKlcdWledEVgUp8jSFI64IaArEx0sVZHkyhR+nCEkoDzPUetGuN/w8HHuQUSpJuacfwOKVJfUOI8w8xWEysBPEOd6v3sU4Nb2HE1DQhAJW1BWW1mVw7tHiqZegp12iEtXIUoKwK0DiXt1gQs3w4NPoSZdAfHulAElsbliHeTLpWdJjrHp4eDLFD+nMXy1QJZlcDVQYYtHsSZ9z/wNwGffiN1RCMmXVVPMgBUuMJ6YsGYW+bqgxIwAMkxIPfvLJbOY1jDCQ1LONlSYpdqRGBGgL9dKGTBOF+jaFr7OTNgU7MUR2oaDgbWuYmXTuaV0rlYo4uQPkBMW73weqRzb0wFu96rYcQZ47Bg4mUwRiBy2WDWyWJ7YKJml86FmDQtfxp7C236Il40uDNeEQgqRJWiNJMZUMiuzl7F/dZnBhrbSsrXJNDJNQ2H/9BeevBviUVthtx2jMYhx0rHJ7xgBAc6IdF4anYq1NPb4LMJzak5KN8Eg4GpH4JTM3mt52HpxiTuvLOz/iHRHuYqYhr9+LrH3OdTvZlAabA7i+WK13KCjnsAbItmttvG0+h7N7xcYWpFunLVUxaMyckoKy3fRWXpa7wscdgVqPYnDfoLaWawt2UzebOC1PwdeH+h61QiQlb7uhDTYkfbX+s8f6Td8JW7ht0aWRwAAAABJRU5ErkJggg=="},"images":{"fallback":{"src":"/static/e89878735987983b99492d885250d035/60da4/blogCover.png","srcSet":"/static/e89878735987983b99492d885250d035/17981/blogCover.png 150w,\n/static/e89878735987983b99492d885250d035/e9a60/blogCover.png 300w,\n/static/e89878735987983b99492d885250d035/60da4/blogCover.png 600w,\n/static/e89878735987983b99492d885250d035/a3486/blogCover.png 1200w","sizes":"(min-width: 600px) 600px, 100vw"},"sources":[{"srcSet":"/static/e89878735987983b99492d885250d035/e625e/blogCover.avif 150w,\n/static/e89878735987983b99492d885250d035/2574e/blogCover.avif 300w,\n/static/e89878735987983b99492d885250d035/d3834/blogCover.avif 600w,\n/static/e89878735987983b99492d885250d035/387a3/blogCover.avif 1200w","type":"image/avif","sizes":"(min-width: 600px) 600px, 100vw"},{"srcSet":"/static/e89878735987983b99492d885250d035/e80bb/blogCover.webp 150w,\n/static/e89878735987983b99492d885250d035/a8059/blogCover.webp 300w,\n/static/e89878735987983b99492d885250d035/9a858/blogCover.webp 600w,\n/static/e89878735987983b99492d885250d035/c3710/blogCover.webp 1200w","type":"image/webp","sizes":"(min-width: 600px) 600px, 100vw"}]},"width":600,"height":450}}}},"wordCount":{"words":608}}]}},"pageContext":{"limit":5,"skip":5,"pagesQuantity":2,"currentPage":2,"lang":"en","markupData":{"bannerTitle":"Well unknown facts","head":"CodeCave Blog","readPostLink":"Open article","readingTimeTitle":"Reading time","readingTimeUnits":"m","postFooterTitle":"Congratulations! Now you can show off with your new knowledge!","postFooterText":"If you want us to uncover some other Well unknown facts, you can contact us via the socials or e-mail below. See you!","sharePostTitle":"Share this post","readMoreOnTopicTitle":"Read more on","blogSectionTitle":"new in our blog","blogSectionLinkTitle":"all posts","image":{"childImageSharp":{"gatsbyImageData":{"layout":"constrained","placeholder":{"fallback":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAACXBIWXMAAAsTAAALEwEAmpwYAAAD1UlEQVR42pWUX0zTVxTHCwT501JKaWmBrsUV5N9gIixsuqgwlDCge7Hooli0yp9ZRR+0BdryxxU7oVCQgC3Kn1IMf0S3xLlMI2Mapw+a6JMGX9yMe3EPbvoimHw99xJJnIPpw82vub33ez7nnO89gqioKLzLkkqlkMvliI6O5r+XOid4FzEmFBkZiaCgIISFhSEiIoKLMvH3EnxNFRwcDI1GA4vFgry8PHyo1UIsFkMoFEImk71BvKQgOygSibiYXl+Ge/fu4+X8PC5f+hkOhwOmfSZkrc7ixOHh4Yu0gv+iYt+AgABotYnw+/2Ym5vDo0e/49zUJI47nejr7cXQ4BDcnW7UVNcgOzsbK1aEcGrBv6lYtNDQUOytrMTjx3/i+fNnuHv3DsbHx+AbHibRKTTa7XC1tWNsbAxdbjfG6Wsxm6GKVy0IMiGGHBgYiKysNbh48SeieoHZ2fu4dvVXDA0MwNXeDk9fH/wjI7h58wbOjI7CcsSMbncXBgdOw+v1ID09HQKWIqsD66KZojx58hf++fspZn6ZRmdHB4YHB9F+vA1ej4eo2jjZMUcrJscniK6LU/d0d6PJ3rggyCyQm5uLW7duY36eavXHQ/zw/Xn0e7041d/Pa+Y96eE0vmEfJicmUF1ZBVPNN+jt6eGp7qqoQN6GjdwJnDAjI4NHYh1sqKuDo+UoRkf8sFutOEkNsFlt2GUwoKW5mUjsGDh9Ctd/u4ZOlwtlej0+ycmBtb4BO7Zvh4DVLiQkBPFxcWhqbKRauehyBewNVkydPcvJeohk+so0Dpj2o+07J2ZmpvFgdhaObx3YuH49mumeTqdb6LJEIqHuxEOjVnPL6LdswYkT3TAfPgLDjnK0kud+vHAB9XX1VAIvX9VVVbyue4xGnhGzDXMGu79om5UJCUhOToaYapqelkYCdXAec2KvcQ8tI5ytrWhpaoKupBRRBJFDIpsKNkFNIEzsLWOLqcuMNjMjE6XFJRCSH4uKiqhuLZzyYG0t1n62Fh9RJ5kjNhcU4PN167hvme3eenrszUrooMGwE1/pSpFEr0ROB9UaNfabTCjcXEj12oBDtQfxRX4+PiVnlBQXLw6KNwTZBouUTw9/xOfj6bP91ZkfIykxkYgk2Fa2FUeJ1mazwWjcDZFQxJuw5LRh6SoUCqKSQ6P6AAlqDd9TqVT4eus2lJeXIzU1FV8WFiJOGcvT/t/xxQRer/jYOEpbC6VCSeWIgTJGgZSkVVDExCCS/pe+z4BlhxmBTBYNbcJKJCcmIS0lBbFKJQ+23AxddsCyywvCMkhYEE4mXVbwFQflxPovnsZUAAAAAElFTkSuQmCC"},"images":{"fallback":{"src":"/static/b358397f973ed74732db29698c1773d1/30cdc/blog.png","srcSet":"/static/b358397f973ed74732db29698c1773d1/7458e/blog.png 75w,\n/static/b358397f973ed74732db29698c1773d1/de3a1/blog.png 150w,\n/static/b358397f973ed74732db29698c1773d1/30cdc/blog.png 300w","sizes":"(min-width: 300px) 300px, 100vw"},"sources":[{"srcSet":"/static/b358397f973ed74732db29698c1773d1/eb54c/blog.avif 75w,\n/static/b358397f973ed74732db29698c1773d1/81307/blog.avif 150w,\n/static/b358397f973ed74732db29698c1773d1/aa5b9/blog.avif 300w","type":"image/avif","sizes":"(min-width: 300px) 300px, 100vw"},{"srcSet":"/static/b358397f973ed74732db29698c1773d1/18188/blog.webp 75w,\n/static/b358397f973ed74732db29698c1773d1/c65bc/blog.webp 150w,\n/static/b358397f973ed74732db29698c1773d1/078c3/blog.webp 300w","type":"image/webp","sizes":"(min-width: 300px) 300px, 100vw"}]},"width":300,"height":300}}}},"pagination":{"next":"Next page"},"site":{"siteUrl":"https://www.codecave.it"}}},"staticQueryHashes":["2595676272","2708699711"],"slicesMap":{}} \ No newline at end of file diff --git a/page-data/sq/d/641077248.json b/page-data/sq/d/641077248.json index ac35d903..e2469a89 100644 --- a/page-data/sq/d/641077248.json +++ b/page-data/sq/d/641077248.json @@ -1 +1 @@ -{"data":{"en":{"nodes":[{"id":"91d98aad-6ec6-5e71-b6ca-daff730c0ca4","frontmatter":{"date":"12 Jun 2023","title":"Awesome post 6","text":"Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source. Lorem Ipsum comes from sections 1.10.32 and 1.10.33 of \"de Finibus Bonorum et Malorum\" (The Extremes of Good and Evil) by Cicero, written in 45 BC. This book is a treatise on the theory of ethics, very popular during the Renaissance. The first line of Lorem Ipsum, \"Lorem ipsum dolor sit amet..\", comes from a line in section 1.10.32."},"wordCount":{"words":707}}]},"ru":{"nodes":[{"id":"ab37b495-8676-5d94-9eb5-50370eb39fe4","frontmatter":{"date":"12 июня 2023","title":"Супер блог 6","text":"Наше дело не так однозначно, как может показаться(:) убеждённость некоторых оппонентов играет важную роль в формировании дальнейших направлений развития! Банальные, но неопровержимые выводы, а также явные признаки победы институционализации неоднозначны и будут указаны как претенденты на роль ключевых факторов! Задача организации, в особенности же убеждённость некоторых оппонентов требует от нас анализа существующих финансовых и административных условий!"},"wordCount":{"words":108}}]},"markupData":{"nodes":[{"fields":{"language":"en"},"frontmatter":{"blog":{"bannerTitle":"Well unknown facts","head":"CodeCave Blog","readPostLink":"Open article","readingTimeTitle":"Reading time","readingTimeUnits":"m","postFooterTitle":"Congratulations! Now you can show off with your new knowledge!","postFooterText":"If you want us to uncover some other Well unknown facts, you can contact us via the socials or e-mail below. See you!","blogSectionTitle":"new in our blog","blogSectionLinkTitle":"all posts"}}},{"fields":{"language":"ru"},"frontmatter":{"blog":{"bannerTitle":"ВЕРНЕМ БЛОГГИНГ В ТРЕНД","head":"Блог CodeCave","readPostLink":"Читать дальше","readingTimeTitle":"Время прочтения","readingTimeUnits":"мин","postFooterTitle":"Поздравляем! Теперь ты можешь похвастаться новыми знаниями!","postFooterText":"Если тебе хотелось бы увидеть наш взгляд на какие-то еще широко неизвестные факты, с нами можно связаться в соцсетях или по имейлу. Увидимся!","blogSectionTitle":"новое в блоге","blogSectionLinkTitle":"перейти в блог"}}}]}}} \ No newline at end of file +{"data":{"en":{"nodes":[{"id":"c924c93c-fac0-517e-92e7-c5b5aaa083c2","frontmatter":{"date":"21 Jun 2024","title":"Proxmox VM Templates and Cloud-Init","text":"In the world of virtualization, efficiency and automation are key. That's where Proxmox Virtual Environment (VE) comes into play, offering a robust solution for managing virtual machines (VMs) with ease. One of the most powerful features of Proxmox is its ability to use VM templates in conjunction with Cloud-Init, streamlining the deployment process and making it as smooth as a cloud...."},"wordCount":{"words":659}}]},"ru":{"nodes":[{"id":"2eff51f3-1715-52fc-8a28-0f6a8602f038","frontmatter":{"date":"21 июня 2024","title":"Шаблоны виртуальных машин Proxmox и Cloud-Init","text":"В мире виртуализации ключевыми являются эффективность и автоматизация. Здесь в игру вступает Proxmox Virtual Environment (VE), предлагая надежное решение для удобного управления виртуальными машинами (ВМ). Одной из самых интересных особенностей Proxmox является возможность использования шаблонов виртуальных машин в сочетании с Cloud-Init, что упрощает процесс развертывания и делает его таким же плавным, как в....."},"wordCount":{"words":590}}]},"markupData":{"nodes":[{"fields":{"language":"en"},"frontmatter":{"blog":{"bannerTitle":"Well unknown facts","head":"CodeCave Blog","readPostLink":"Open article","readingTimeTitle":"Reading time","readingTimeUnits":"m","postFooterTitle":"Congratulations! Now you can show off with your new knowledge!","postFooterText":"If you want us to uncover some other Well unknown facts, you can contact us via the socials or e-mail below. See you!","blogSectionTitle":"new in our blog","blogSectionLinkTitle":"all posts"}}},{"fields":{"language":"ru"},"frontmatter":{"blog":{"bannerTitle":"ВЕРНЕМ БЛОГГИНГ В ТРЕНД","head":"Блог CodeCave","readPostLink":"Читать дальше","readingTimeTitle":"Время прочтения","readingTimeUnits":"мин","postFooterTitle":"Поздравляем! Теперь ты можешь похвастаться новыми знаниями!","postFooterText":"Если тебе хотелось бы увидеть наш взгляд на какие-то еще широко неизвестные факты, с нами можно связаться в соцсетях или по имейлу. Увидимся!","blogSectionTitle":"новое в блоге","blogSectionLinkTitle":"перейти в блог"}}}]}}} \ No newline at end of file diff --git a/privacy-policy/index.html b/privacy-policy/index.html index 14263a28..fcbfdd01 100644 --- a/privacy-policy/index.html +++ b/privacy-policy/index.html @@ -1,6 +1,6 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/projects/08716ab8-fc5f-5f90-9fc0-a8218ec51923/index.html b/projects/08716ab8-fc5f-5f90-9fc0-a8218ec51923/index.html index c105343b..647613ba 100644 --- a/projects/08716ab8-fc5f-5f90-9fc0-a8218ec51923/index.html +++ b/projects/08716ab8-fc5f-5f90-9fc0-a8218ec51923/index.html @@ -1,6 +1,6 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/projects/9f63d17d-6164-509e-b2c7-4c655ab9ad7a/index.html b/projects/9f63d17d-6164-509e-b2c7-4c655ab9ad7a/index.html index 87d98242..642ed867 100644 --- a/projects/9f63d17d-6164-509e-b2c7-4c655ab9ad7a/index.html +++ b/projects/9f63d17d-6164-509e-b2c7-4c655ab9ad7a/index.html @@ -1,6 +1,6 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/projects/f17de1e3-0a73-5f92-bf66-1e12d5fdc0fb/index.html b/projects/f17de1e3-0a73-5f92-bf66-1e12d5fdc0fb/index.html index 70755c6b..58eef208 100644 --- a/projects/f17de1e3-0a73-5f92-bf66-1e12d5fdc0fb/index.html +++ b/projects/f17de1e3-0a73-5f92-bf66-1e12d5fdc0fb/index.html @@ -1,6 +1,6 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/projects/ff9598a3-3fad-5a4e-a8a8-a8858b3a27e7/index.html b/projects/ff9598a3-3fad-5a4e-a8a8-a8858b3a27e7/index.html index b2e43e2e..d333a528 100644 --- a/projects/ff9598a3-3fad-5a4e-a8a8-a8858b3a27e7/index.html +++ b/projects/ff9598a3-3fad-5a4e-a8a8-a8858b3a27e7/index.html @@ -1,6 +1,6 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/projects/index.html b/projects/index.html index 90e4e210..6840efb4 100644 --- a/projects/index.html +++ b/projects/index.html @@ -1,6 +1,6 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/projects/page/1/index.html b/projects/page/1/index.html index 0ec12d84..3ef09ae0 100644 --- a/projects/page/1/index.html +++ b/projects/page/1/index.html @@ -1,6 +1,6 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/services/index.html b/services/index.html index dcc1d5ed..8bc1b45a 100644 --- a/services/index.html +++ b/services/index.html @@ -1,6 +1,6 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/sitemap-0.xml b/sitemap-0.xml index 83194f60..a1cafffd 100644 --- a/sitemap-0.xml +++ b/sitemap-0.xml @@ -1 +1 @@ -https://www.codecave.it/blog/91d98aad-6ec6-5e71-b6ca-daff730c0ca4/daily0.7https://www.codecave.it/blog/1f201db1-7d1d-5ef0-b138-fe7b3dc57ba8/daily0.7https://www.codecave.it/blog/f7437acb-56dc-5ec6-9370-7726f39da57a/daily0.7https://www.codecave.it/blog/aa06b558-51ae-5f78-9989-0baadffbbc36/daily0.7https://www.codecave.it/blog/6a129001-a171-5d7e-9555-a943ae9d624f/daily0.7https://www.codecave.it/blog/45775c6a-7cd8-5018-9047-afbec09abf59/daily0.7https://www.codecave.it/blog/daily0.7https://www.codecave.it/blog/page/1/daily0.7https://www.codecave.it/blog/page/2/daily0.7https://www.codecave.it/projects/f17de1e3-0a73-5f92-bf66-1e12d5fdc0fb/daily0.7https://www.codecave.it/projects/9f63d17d-6164-509e-b2c7-4c655ab9ad7a/daily0.7https://www.codecave.it/projects/ff9598a3-3fad-5a4e-a8a8-a8858b3a27e7/daily0.7https://www.codecave.it/projects/08716ab8-fc5f-5f90-9fc0-a8218ec51923/daily0.7https://www.codecave.it/projects/daily0.7https://www.codecave.it/projects/page/1/daily0.7https://www.codecave.it/workflow/daily0.7https://www.codecave.it/services/daily0.7https://www.codecave.it/daily0.7https://www.codecave.it/privacy-policy/daily0.7https://www.codecave.it/cookie-policy/daily0.7 \ No newline at end of file +https://www.codecave.it/blog/c924c93c-fac0-517e-92e7-c5b5aaa083c2/daily0.7https://www.codecave.it/blog/e173a2ae-ebb5-5219-9479-035dde5fe8c8/daily0.7https://www.codecave.it/blog/10582553-73a2-569f-8bdd-980e1f77c10a/daily0.7https://www.codecave.it/blog/91d98aad-6ec6-5e71-b6ca-daff730c0ca4/daily0.7https://www.codecave.it/blog/1f201db1-7d1d-5ef0-b138-fe7b3dc57ba8/daily0.7https://www.codecave.it/blog/f7437acb-56dc-5ec6-9370-7726f39da57a/daily0.7https://www.codecave.it/blog/aa06b558-51ae-5f78-9989-0baadffbbc36/daily0.7https://www.codecave.it/blog/6a129001-a171-5d7e-9555-a943ae9d624f/daily0.7https://www.codecave.it/blog/45775c6a-7cd8-5018-9047-afbec09abf59/daily0.7https://www.codecave.it/blog/daily0.7https://www.codecave.it/blog/page/1/daily0.7https://www.codecave.it/blog/page/2/daily0.7https://www.codecave.it/projects/f17de1e3-0a73-5f92-bf66-1e12d5fdc0fb/daily0.7https://www.codecave.it/projects/9f63d17d-6164-509e-b2c7-4c655ab9ad7a/daily0.7https://www.codecave.it/projects/ff9598a3-3fad-5a4e-a8a8-a8858b3a27e7/daily0.7https://www.codecave.it/projects/08716ab8-fc5f-5f90-9fc0-a8218ec51923/daily0.7https://www.codecave.it/projects/daily0.7https://www.codecave.it/projects/page/1/daily0.7https://www.codecave.it/workflow/daily0.7https://www.codecave.it/services/daily0.7https://www.codecave.it/daily0.7https://www.codecave.it/privacy-policy/daily0.7https://www.codecave.it/cookie-policy/daily0.7 \ No newline at end of file diff --git a/static/03480b7216343449f501b453b8a05ed7/1cfc2/GetAgent.png b/static/03480b7216343449f501b453b8a05ed7/1cfc2/GetAgent.png new file mode 100644 index 00000000..8acfb20a Binary files /dev/null and b/static/03480b7216343449f501b453b8a05ed7/1cfc2/GetAgent.png differ diff --git a/static/03480b7216343449f501b453b8a05ed7/3684f/GetAgent.png b/static/03480b7216343449f501b453b8a05ed7/3684f/GetAgent.png new file mode 100644 index 00000000..a7270cf3 Binary files /dev/null and b/static/03480b7216343449f501b453b8a05ed7/3684f/GetAgent.png differ diff --git a/static/03480b7216343449f501b453b8a05ed7/cd536/GetAgent.png b/static/03480b7216343449f501b453b8a05ed7/cd536/GetAgent.png new file mode 100644 index 00000000..6f88019c Binary files /dev/null and b/static/03480b7216343449f501b453b8a05ed7/cd536/GetAgent.png differ diff --git a/static/03480b7216343449f501b453b8a05ed7/fc2a6/GetAgent.png b/static/03480b7216343449f501b453b8a05ed7/fc2a6/GetAgent.png new file mode 100644 index 00000000..0e0c85f0 Binary files /dev/null and b/static/03480b7216343449f501b453b8a05ed7/fc2a6/GetAgent.png differ diff --git a/static/1218f3f01ec49437d381271c6bcea5e0/078c3/intro.webp b/static/1218f3f01ec49437d381271c6bcea5e0/078c3/intro.webp new file mode 100644 index 00000000..36561dac Binary files /dev/null and b/static/1218f3f01ec49437d381271c6bcea5e0/078c3/intro.webp differ diff --git a/static/1218f3f01ec49437d381271c6bcea5e0/0c8d0/intro.avif b/static/1218f3f01ec49437d381271c6bcea5e0/0c8d0/intro.avif new file mode 100644 index 00000000..88a3d9d2 Binary files /dev/null and b/static/1218f3f01ec49437d381271c6bcea5e0/0c8d0/intro.avif differ diff --git a/static/1218f3f01ec49437d381271c6bcea5e0/0fdf4/intro.jpg b/static/1218f3f01ec49437d381271c6bcea5e0/0fdf4/intro.jpg new file mode 100644 index 00000000..b831729d Binary files /dev/null and b/static/1218f3f01ec49437d381271c6bcea5e0/0fdf4/intro.jpg differ diff --git a/static/1218f3f01ec49437d381271c6bcea5e0/1cfc2/intro.png b/static/1218f3f01ec49437d381271c6bcea5e0/1cfc2/intro.png new file mode 100644 index 00000000..2c577add Binary files /dev/null and b/static/1218f3f01ec49437d381271c6bcea5e0/1cfc2/intro.png differ diff --git a/static/1218f3f01ec49437d381271c6bcea5e0/2bef9/intro.png b/static/1218f3f01ec49437d381271c6bcea5e0/2bef9/intro.png new file mode 100644 index 00000000..09963888 Binary files /dev/null and b/static/1218f3f01ec49437d381271c6bcea5e0/2bef9/intro.png differ diff --git a/static/1218f3f01ec49437d381271c6bcea5e0/3684f/intro.png b/static/1218f3f01ec49437d381271c6bcea5e0/3684f/intro.png new file mode 100644 index 00000000..0042f4f8 Binary files /dev/null and b/static/1218f3f01ec49437d381271c6bcea5e0/3684f/intro.png differ diff --git a/static/1218f3f01ec49437d381271c6bcea5e0/6d09e/intro.webp b/static/1218f3f01ec49437d381271c6bcea5e0/6d09e/intro.webp new file mode 100644 index 00000000..1a0ed10e Binary files /dev/null and b/static/1218f3f01ec49437d381271c6bcea5e0/6d09e/intro.webp differ diff --git a/static/1218f3f01ec49437d381271c6bcea5e0/81307/intro.avif b/static/1218f3f01ec49437d381271c6bcea5e0/81307/intro.avif new file mode 100644 index 00000000..84ca65d2 Binary files /dev/null and b/static/1218f3f01ec49437d381271c6bcea5e0/81307/intro.avif differ diff --git a/static/1218f3f01ec49437d381271c6bcea5e0/96deb/intro.jpg b/static/1218f3f01ec49437d381271c6bcea5e0/96deb/intro.jpg new file mode 100644 index 00000000..ddb4d4d9 Binary files /dev/null and b/static/1218f3f01ec49437d381271c6bcea5e0/96deb/intro.jpg differ diff --git a/static/1218f3f01ec49437d381271c6bcea5e0/a89ca/intro.jpg b/static/1218f3f01ec49437d381271c6bcea5e0/a89ca/intro.jpg new file mode 100644 index 00000000..82fecf31 Binary files /dev/null and b/static/1218f3f01ec49437d381271c6bcea5e0/a89ca/intro.jpg differ diff --git a/static/1218f3f01ec49437d381271c6bcea5e0/aa5b9/intro.avif b/static/1218f3f01ec49437d381271c6bcea5e0/aa5b9/intro.avif new file mode 100644 index 00000000..3799596e Binary files /dev/null and b/static/1218f3f01ec49437d381271c6bcea5e0/aa5b9/intro.avif differ diff --git a/static/1218f3f01ec49437d381271c6bcea5e0/c65bc/intro.webp b/static/1218f3f01ec49437d381271c6bcea5e0/c65bc/intro.webp new file mode 100644 index 00000000..cfbb3e7f Binary files /dev/null and b/static/1218f3f01ec49437d381271c6bcea5e0/c65bc/intro.webp differ diff --git a/static/1218f3f01ec49437d381271c6bcea5e0/fc2a6/intro.png b/static/1218f3f01ec49437d381271c6bcea5e0/fc2a6/intro.png new file mode 100644 index 00000000..b42a2959 Binary files /dev/null and b/static/1218f3f01ec49437d381271c6bcea5e0/fc2a6/intro.png differ diff --git a/static/1441f6fa5d6f422fe91db317638f9f32/078c3/intro.webp b/static/1441f6fa5d6f422fe91db317638f9f32/078c3/intro.webp new file mode 100644 index 00000000..f6551a23 Binary files /dev/null and b/static/1441f6fa5d6f422fe91db317638f9f32/078c3/intro.webp differ diff --git a/static/1441f6fa5d6f422fe91db317638f9f32/0c8d0/intro.avif b/static/1441f6fa5d6f422fe91db317638f9f32/0c8d0/intro.avif new file mode 100644 index 00000000..0e2ff8ab Binary files /dev/null and b/static/1441f6fa5d6f422fe91db317638f9f32/0c8d0/intro.avif differ diff --git a/static/1441f6fa5d6f422fe91db317638f9f32/1cfc2/intro.png b/static/1441f6fa5d6f422fe91db317638f9f32/1cfc2/intro.png new file mode 100644 index 00000000..89bef464 Binary files /dev/null and b/static/1441f6fa5d6f422fe91db317638f9f32/1cfc2/intro.png differ diff --git a/static/1441f6fa5d6f422fe91db317638f9f32/2bef9/intro.png b/static/1441f6fa5d6f422fe91db317638f9f32/2bef9/intro.png new file mode 100644 index 00000000..b04cddd3 Binary files /dev/null and b/static/1441f6fa5d6f422fe91db317638f9f32/2bef9/intro.png differ diff --git a/static/1441f6fa5d6f422fe91db317638f9f32/30cdc/intro.png b/static/1441f6fa5d6f422fe91db317638f9f32/30cdc/intro.png new file mode 100644 index 00000000..95aac7ef Binary files /dev/null and b/static/1441f6fa5d6f422fe91db317638f9f32/30cdc/intro.png differ diff --git a/static/1441f6fa5d6f422fe91db317638f9f32/3684f/intro.png b/static/1441f6fa5d6f422fe91db317638f9f32/3684f/intro.png new file mode 100644 index 00000000..ca9f8c17 Binary files /dev/null and b/static/1441f6fa5d6f422fe91db317638f9f32/3684f/intro.png differ diff --git a/static/1441f6fa5d6f422fe91db317638f9f32/6d09e/intro.webp b/static/1441f6fa5d6f422fe91db317638f9f32/6d09e/intro.webp new file mode 100644 index 00000000..6991ca5f Binary files /dev/null and b/static/1441f6fa5d6f422fe91db317638f9f32/6d09e/intro.webp differ diff --git a/static/1441f6fa5d6f422fe91db317638f9f32/81307/intro.avif b/static/1441f6fa5d6f422fe91db317638f9f32/81307/intro.avif new file mode 100644 index 00000000..041a4939 Binary files /dev/null and b/static/1441f6fa5d6f422fe91db317638f9f32/81307/intro.avif differ diff --git a/static/1441f6fa5d6f422fe91db317638f9f32/aa5b9/intro.avif b/static/1441f6fa5d6f422fe91db317638f9f32/aa5b9/intro.avif new file mode 100644 index 00000000..4a313eb6 Binary files /dev/null and b/static/1441f6fa5d6f422fe91db317638f9f32/aa5b9/intro.avif differ diff --git a/static/1441f6fa5d6f422fe91db317638f9f32/c65bc/intro.webp b/static/1441f6fa5d6f422fe91db317638f9f32/c65bc/intro.webp new file mode 100644 index 00000000..def84af7 Binary files /dev/null and b/static/1441f6fa5d6f422fe91db317638f9f32/c65bc/intro.webp differ diff --git a/static/1441f6fa5d6f422fe91db317638f9f32/c7240/intro.png b/static/1441f6fa5d6f422fe91db317638f9f32/c7240/intro.png new file mode 100644 index 00000000..a4768615 Binary files /dev/null and b/static/1441f6fa5d6f422fe91db317638f9f32/c7240/intro.png differ diff --git a/static/1441f6fa5d6f422fe91db317638f9f32/de3a1/intro.png b/static/1441f6fa5d6f422fe91db317638f9f32/de3a1/intro.png new file mode 100644 index 00000000..52a5bcb6 Binary files /dev/null and b/static/1441f6fa5d6f422fe91db317638f9f32/de3a1/intro.png differ diff --git a/static/1441f6fa5d6f422fe91db317638f9f32/fc2a6/intro.png b/static/1441f6fa5d6f422fe91db317638f9f32/fc2a6/intro.png new file mode 100644 index 00000000..02643a42 Binary files /dev/null and b/static/1441f6fa5d6f422fe91db317638f9f32/fc2a6/intro.png differ diff --git a/static/20f2a8d8398e868f0d50bd7fb356ffdb/1f64c/author.jpg b/static/20f2a8d8398e868f0d50bd7fb356ffdb/1f64c/author.jpg new file mode 100644 index 00000000..a482029b Binary files /dev/null and b/static/20f2a8d8398e868f0d50bd7fb356ffdb/1f64c/author.jpg differ diff --git a/static/20f2a8d8398e868f0d50bd7fb356ffdb/34a4f/author.avif b/static/20f2a8d8398e868f0d50bd7fb356ffdb/34a4f/author.avif new file mode 100644 index 00000000..e0396e03 Binary files /dev/null and b/static/20f2a8d8398e868f0d50bd7fb356ffdb/34a4f/author.avif differ diff --git a/static/20f2a8d8398e868f0d50bd7fb356ffdb/464e8/author.jpg b/static/20f2a8d8398e868f0d50bd7fb356ffdb/464e8/author.jpg new file mode 100644 index 00000000..0cb56150 Binary files /dev/null and b/static/20f2a8d8398e868f0d50bd7fb356ffdb/464e8/author.jpg differ diff --git a/static/20f2a8d8398e868f0d50bd7fb356ffdb/5e01a/author.webp b/static/20f2a8d8398e868f0d50bd7fb356ffdb/5e01a/author.webp new file mode 100644 index 00000000..1f30a0cc Binary files /dev/null and b/static/20f2a8d8398e868f0d50bd7fb356ffdb/5e01a/author.webp differ diff --git a/static/20f2a8d8398e868f0d50bd7fb356ffdb/6c901/author.webp b/static/20f2a8d8398e868f0d50bd7fb356ffdb/6c901/author.webp new file mode 100644 index 00000000..759d3057 Binary files /dev/null and b/static/20f2a8d8398e868f0d50bd7fb356ffdb/6c901/author.webp differ diff --git a/static/20f2a8d8398e868f0d50bd7fb356ffdb/8b866/author.avif b/static/20f2a8d8398e868f0d50bd7fb356ffdb/8b866/author.avif new file mode 100644 index 00000000..43b4d1b7 Binary files /dev/null and b/static/20f2a8d8398e868f0d50bd7fb356ffdb/8b866/author.avif differ diff --git a/static/20f2a8d8398e868f0d50bd7fb356ffdb/8cd5f/author.avif b/static/20f2a8d8398e868f0d50bd7fb356ffdb/8cd5f/author.avif new file mode 100644 index 00000000..7c998e0a Binary files /dev/null and b/static/20f2a8d8398e868f0d50bd7fb356ffdb/8cd5f/author.avif differ diff --git a/static/20f2a8d8398e868f0d50bd7fb356ffdb/94d43/author.webp b/static/20f2a8d8398e868f0d50bd7fb356ffdb/94d43/author.webp new file mode 100644 index 00000000..24b12b6a Binary files /dev/null and b/static/20f2a8d8398e868f0d50bd7fb356ffdb/94d43/author.webp differ diff --git a/static/20f2a8d8398e868f0d50bd7fb356ffdb/aa76d/author.webp b/static/20f2a8d8398e868f0d50bd7fb356ffdb/aa76d/author.webp new file mode 100644 index 00000000..e4b2a768 Binary files /dev/null and b/static/20f2a8d8398e868f0d50bd7fb356ffdb/aa76d/author.webp differ diff --git a/static/20f2a8d8398e868f0d50bd7fb356ffdb/af0fe/author.jpg b/static/20f2a8d8398e868f0d50bd7fb356ffdb/af0fe/author.jpg new file mode 100644 index 00000000..879e8a8b Binary files /dev/null and b/static/20f2a8d8398e868f0d50bd7fb356ffdb/af0fe/author.jpg differ diff --git a/static/20f2a8d8398e868f0d50bd7fb356ffdb/c032f/author.jpg b/static/20f2a8d8398e868f0d50bd7fb356ffdb/c032f/author.jpg new file mode 100644 index 00000000..8b2facd4 Binary files /dev/null and b/static/20f2a8d8398e868f0d50bd7fb356ffdb/c032f/author.jpg differ diff --git a/static/20f2a8d8398e868f0d50bd7fb356ffdb/d6ed5/author.avif b/static/20f2a8d8398e868f0d50bd7fb356ffdb/d6ed5/author.avif new file mode 100644 index 00000000..32e2f9b7 Binary files /dev/null and b/static/20f2a8d8398e868f0d50bd7fb356ffdb/d6ed5/author.avif differ diff --git a/static/49e2a60993cc917e12627bc48f419f56/3684f/PAT.png b/static/49e2a60993cc917e12627bc48f419f56/3684f/PAT.png new file mode 100644 index 00000000..cc67a156 Binary files /dev/null and b/static/49e2a60993cc917e12627bc48f419f56/3684f/PAT.png differ diff --git a/static/49e2a60993cc917e12627bc48f419f56/84cc5/PAT.png b/static/49e2a60993cc917e12627bc48f419f56/84cc5/PAT.png new file mode 100644 index 00000000..392fae12 Binary files /dev/null and b/static/49e2a60993cc917e12627bc48f419f56/84cc5/PAT.png differ diff --git a/static/49e2a60993cc917e12627bc48f419f56/fc2a6/PAT.png b/static/49e2a60993cc917e12627bc48f419f56/fc2a6/PAT.png new file mode 100644 index 00000000..31336c7f Binary files /dev/null and b/static/49e2a60993cc917e12627bc48f419f56/fc2a6/PAT.png differ diff --git a/static/5b09e340899c3ea191d650dd40043308/078c3/intro.webp b/static/5b09e340899c3ea191d650dd40043308/078c3/intro.webp new file mode 100644 index 00000000..7c9ec0d6 Binary files /dev/null and b/static/5b09e340899c3ea191d650dd40043308/078c3/intro.webp differ diff --git a/static/5b09e340899c3ea191d650dd40043308/0c8d0/intro.avif b/static/5b09e340899c3ea191d650dd40043308/0c8d0/intro.avif new file mode 100644 index 00000000..018758f1 Binary files /dev/null and b/static/5b09e340899c3ea191d650dd40043308/0c8d0/intro.avif differ diff --git a/static/5b09e340899c3ea191d650dd40043308/1cfc2/intro.png b/static/5b09e340899c3ea191d650dd40043308/1cfc2/intro.png new file mode 100644 index 00000000..f81479e8 Binary files /dev/null and b/static/5b09e340899c3ea191d650dd40043308/1cfc2/intro.png differ diff --git a/static/5b09e340899c3ea191d650dd40043308/2bef9/intro.png b/static/5b09e340899c3ea191d650dd40043308/2bef9/intro.png new file mode 100644 index 00000000..fb9b3101 Binary files /dev/null and b/static/5b09e340899c3ea191d650dd40043308/2bef9/intro.png differ diff --git a/static/5b09e340899c3ea191d650dd40043308/30cdc/intro.png b/static/5b09e340899c3ea191d650dd40043308/30cdc/intro.png new file mode 100644 index 00000000..5bfd331e Binary files /dev/null and b/static/5b09e340899c3ea191d650dd40043308/30cdc/intro.png differ diff --git a/static/5b09e340899c3ea191d650dd40043308/3684f/intro.png b/static/5b09e340899c3ea191d650dd40043308/3684f/intro.png new file mode 100644 index 00000000..7a62133f Binary files /dev/null and b/static/5b09e340899c3ea191d650dd40043308/3684f/intro.png differ diff --git a/static/5b09e340899c3ea191d650dd40043308/6d09e/intro.webp b/static/5b09e340899c3ea191d650dd40043308/6d09e/intro.webp new file mode 100644 index 00000000..9d649ceb Binary files /dev/null and b/static/5b09e340899c3ea191d650dd40043308/6d09e/intro.webp differ diff --git a/static/5b09e340899c3ea191d650dd40043308/81307/intro.avif b/static/5b09e340899c3ea191d650dd40043308/81307/intro.avif new file mode 100644 index 00000000..7794c9c3 Binary files /dev/null and b/static/5b09e340899c3ea191d650dd40043308/81307/intro.avif differ diff --git a/static/5b09e340899c3ea191d650dd40043308/aa5b9/intro.avif b/static/5b09e340899c3ea191d650dd40043308/aa5b9/intro.avif new file mode 100644 index 00000000..921abc44 Binary files /dev/null and b/static/5b09e340899c3ea191d650dd40043308/aa5b9/intro.avif differ diff --git a/static/5b09e340899c3ea191d650dd40043308/c65bc/intro.webp b/static/5b09e340899c3ea191d650dd40043308/c65bc/intro.webp new file mode 100644 index 00000000..791f9a84 Binary files /dev/null and b/static/5b09e340899c3ea191d650dd40043308/c65bc/intro.webp differ diff --git a/static/5b09e340899c3ea191d650dd40043308/c7240/intro.png b/static/5b09e340899c3ea191d650dd40043308/c7240/intro.png new file mode 100644 index 00000000..401c462e Binary files /dev/null and b/static/5b09e340899c3ea191d650dd40043308/c7240/intro.png differ diff --git a/static/5b09e340899c3ea191d650dd40043308/de3a1/intro.png b/static/5b09e340899c3ea191d650dd40043308/de3a1/intro.png new file mode 100644 index 00000000..497eea3d Binary files /dev/null and b/static/5b09e340899c3ea191d650dd40043308/de3a1/intro.png differ diff --git a/static/5b09e340899c3ea191d650dd40043308/fc2a6/intro.png b/static/5b09e340899c3ea191d650dd40043308/fc2a6/intro.png new file mode 100644 index 00000000..9bd0d053 Binary files /dev/null and b/static/5b09e340899c3ea191d650dd40043308/fc2a6/intro.png differ diff --git a/static/8b2b7aa13c3ae6912e058c2412e659cf/3684f/agent_pool.png b/static/8b2b7aa13c3ae6912e058c2412e659cf/3684f/agent_pool.png new file mode 100644 index 00000000..a222f3c7 Binary files /dev/null and b/static/8b2b7aa13c3ae6912e058c2412e659cf/3684f/agent_pool.png differ diff --git a/static/8b2b7aa13c3ae6912e058c2412e659cf/ae6b7/agent_pool.png b/static/8b2b7aa13c3ae6912e058c2412e659cf/ae6b7/agent_pool.png new file mode 100644 index 00000000..b511af29 Binary files /dev/null and b/static/8b2b7aa13c3ae6912e058c2412e659cf/ae6b7/agent_pool.png differ diff --git a/static/8b2b7aa13c3ae6912e058c2412e659cf/fc2a6/agent_pool.png b/static/8b2b7aa13c3ae6912e058c2412e659cf/fc2a6/agent_pool.png new file mode 100644 index 00000000..912183d1 Binary files /dev/null and b/static/8b2b7aa13c3ae6912e058c2412e659cf/fc2a6/agent_pool.png differ diff --git a/static/937f509027bdf93e6a8a1c900ac54317/1b19f/Commad_line.png b/static/937f509027bdf93e6a8a1c900ac54317/1b19f/Commad_line.png new file mode 100644 index 00000000..98508b0e Binary files /dev/null and b/static/937f509027bdf93e6a8a1c900ac54317/1b19f/Commad_line.png differ diff --git a/static/937f509027bdf93e6a8a1c900ac54317/1cfc2/Commad_line.png b/static/937f509027bdf93e6a8a1c900ac54317/1cfc2/Commad_line.png new file mode 100644 index 00000000..d942d0c3 Binary files /dev/null and b/static/937f509027bdf93e6a8a1c900ac54317/1cfc2/Commad_line.png differ diff --git a/static/937f509027bdf93e6a8a1c900ac54317/3684f/Commad_line.png b/static/937f509027bdf93e6a8a1c900ac54317/3684f/Commad_line.png new file mode 100644 index 00000000..28d3f7e1 Binary files /dev/null and b/static/937f509027bdf93e6a8a1c900ac54317/3684f/Commad_line.png differ diff --git a/static/937f509027bdf93e6a8a1c900ac54317/fc2a6/Commad_line.png b/static/937f509027bdf93e6a8a1c900ac54317/fc2a6/Commad_line.png new file mode 100644 index 00000000..d4d142ec Binary files /dev/null and b/static/937f509027bdf93e6a8a1c900ac54317/fc2a6/Commad_line.png differ diff --git a/static/e8a2a3aba07f2d1c964b8767d0d743dd/3684f/PAT_warning.png b/static/e8a2a3aba07f2d1c964b8767d0d743dd/3684f/PAT_warning.png new file mode 100644 index 00000000..2608727a Binary files /dev/null and b/static/e8a2a3aba07f2d1c964b8767d0d743dd/3684f/PAT_warning.png differ diff --git a/static/e8a2a3aba07f2d1c964b8767d0d743dd/ebf47/PAT_warning.png b/static/e8a2a3aba07f2d1c964b8767d0d743dd/ebf47/PAT_warning.png new file mode 100644 index 00000000..d3b8f7f5 Binary files /dev/null and b/static/e8a2a3aba07f2d1c964b8767d0d743dd/ebf47/PAT_warning.png differ diff --git a/static/e8a2a3aba07f2d1c964b8767d0d743dd/fc2a6/PAT_warning.png b/static/e8a2a3aba07f2d1c964b8767d0d743dd/fc2a6/PAT_warning.png new file mode 100644 index 00000000..58f6730e Binary files /dev/null and b/static/e8a2a3aba07f2d1c964b8767d0d743dd/fc2a6/PAT_warning.png differ diff --git a/styles.5b25a794d449e83a4778.css b/styles.5b25a794d449e83a4778.css deleted file mode 100644 index ba5048db..00000000 --- a/styles.5b25a794d449e83a4778.css +++ /dev/null @@ -1,3 +0,0 @@ -/* -! tailwindcss v3.3.2 | MIT License | https://tailwindcss.com -*/*,:after,:before{border:0 solid}:after,:before{--tw-content:""}html{-webkit-text-size-adjust:100%;font-feature-settings:normal;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-variation-settings:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{color:inherit;font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{color:#9ca3af;opacity:1}input::placeholder,textarea::placeholder{color:#9ca3af;opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]{display:none}*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1440px){.container{max-width:1440px}}@media (min-width:1900px){.container{max-width:1900px}}@media (min-width:2200px){.container{max-width:2200px}}.pointer-events-none{pointer-events:none}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.-bottom-2{bottom:-.5rem}.-left-5{left:-1.25rem}.-right-6{right:-1.5rem}.-top-2{top:-.5rem}.-top-\[6\.5px\]{top:-6.5px}.bottom-0{bottom:0}.bottom-1{bottom:.25rem}.bottom-\[5\%\]{bottom:5%}.left-0{left:0}.left-1\/2{left:50%}.left-6{left:1.5rem}.left-\[2\%\]{left:2%}.right-0{right:0}.right-6{right:1.5rem}.top-0{top:0}.top-1\/2{top:50%}.top-full{top:100%}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-50{z-index:50}.-order-1{order:-1}.float-right{float:right}.m-2{margin:.5rem}.mx-0{margin-left:0;margin-right:0}.mx-12{margin-left:3rem;margin-right:3rem}.mx-3{margin-left:.75rem;margin-right:.75rem}.mx-5{margin-left:1.25rem;margin-right:1.25rem}.mx-auto{margin-left:auto;margin-right:auto}.my-14{margin-bottom:3.5rem;margin-top:3.5rem}.my-20{margin-bottom:5rem;margin-top:5rem}.my-6{margin-bottom:1.5rem;margin-top:1.5rem}.mb-2{margin-bottom:.5rem}.mb-2\.5{margin-bottom:.625rem}.mb-5{margin-bottom:1.25rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.mr-10{margin-right:2.5rem}.mr-2{margin-right:.5rem}.mr-3{margin-right:.75rem}.mr-3\.5{margin-right:.875rem}.mr-7{margin-right:1.75rem}.mt-3{margin-top:.75rem}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.hidden{display:none}.aspect-square{aspect-ratio:1/1}.h-0{height:0}.h-1{height:.25rem}.h-10{height:2.5rem}.h-12{height:3rem}.h-14{height:3.5rem}.h-16{height:4rem}.h-2\/3{height:66.666667%}.h-32{height:8rem}.h-40{height:10rem}.h-48{height:12rem}.h-5{height:1.25rem}.h-8{height:2rem}.h-91{height:22.75rem}.h-\[72px\]{height:72px}.h-full{height:100%}.h-min{height:-moz-min-content;height:min-content}.max-h-\[424px\]{max-height:424px}.max-h-full{max-height:100%}.min-h-91{min-height:22.75rem}.w-0{width:0}.w-1{width:.25rem}.w-12{width:3rem}.w-14{width:3.5rem}.w-16{width:4rem}.w-2\/3{width:66.666667%}.w-32{width:8rem}.w-40{width:10rem}.w-48{width:12rem}.w-5{width:1.25rem}.w-8{width:2rem}.w-\[100\%\]{width:100%}.w-\[192px\]{width:192px}.w-\[220px\]{width:220px}.w-\[72px\]{width:72px}.w-\[85\%\]{width:85%}.w-full{width:100%}.w-max{width:-moz-max-content;width:max-content}.min-w-10{min-width:2.5rem}.max-w-2xl{max-width:680px}.max-w-4\.5xl{max-width:958px}.max-w-\[1280px\]{max-width:1280px}.max-w-\[320px\]{max-width:320px}.max-w-\[400px\]{max-width:400px}.max-w-\[500px\]{max-width:500px}.max-w-\[528px\]{max-width:528px}.max-w-\[544px\]{max-width:544px}.max-w-\[958px\]{max-width:958px}.flex-1{flex:1 1 0%}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.flex-grow,.grow{flex-grow:1}.basis-1\/6{flex-basis:16.666667%}.basis-4\/6{flex-basis:66.666667%}.basis-full{flex-basis:100%}.-translate-x-1\/2{--tw-translate-x:-50%}.-translate-x-1\/2,.-translate-y-1\/2{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\/2{--tw-translate-y:-50%}.-translate-y-\[120\%\]{--tw-translate-y:-120%}.-translate-y-\[120\%\],.translate-y-0{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-0{--tw-translate-y:0px}.translate-y-full{--tw-translate-y:100%}.-rotate-90,.translate-y-full{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-rotate-90{--tw-rotate:-90deg}@keyframes spin{to{transform:rotate(1turn)}}.animate-spin{animation:spin 1s linear infinite}.cursor-pointer{cursor:pointer}.touch-manipulation{touch-action:manipulation}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize{resize:both}.columns-1{-moz-columns:1;column-count:1}.break-inside-avoid{-moz-column-break-inside:avoid;break-inside:avoid}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}.content-center{align-content:center}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-stretch{align-items:stretch}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.justify-evenly{justify-content:space-evenly}.gap-10{gap:2.5rem}.gap-14{gap:3.5rem}.gap-2{gap:.5rem}.gap-2\.5{gap:.625rem}.gap-3{gap:.75rem}.gap-3\.5{gap:.875rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.gap-x-14{-moz-column-gap:3.5rem;column-gap:3.5rem}.gap-x-16{-moz-column-gap:4rem;column-gap:4rem}.gap-x-20{-moz-column-gap:5rem;column-gap:5rem}.gap-x-24{-moz-column-gap:6rem;column-gap:6rem}.gap-x-28{-moz-column-gap:7rem;column-gap:7rem}.gap-x-5{-moz-column-gap:1.25rem;column-gap:1.25rem}.gap-y-2{row-gap:.5rem}.gap-y-2\.5{row-gap:.625rem}.gap-y-5{row-gap:1.25rem}.gap-y-8{row-gap:2rem}.space-x-10>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(2.5rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(2.5rem*var(--tw-space-x-reverse))}.overflow-hidden{overflow:hidden}.whitespace-normal{white-space:normal}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.rounded{border-radius:.25rem}.rounded-2\.5xl{border-radius:20px}.rounded-2xl{border-radius:1rem}.rounded-\[10px\]{border-radius:10px}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-xl{border-radius:.75rem}.rounded-b-2xl{border-bottom-left-radius:1rem;border-bottom-right-radius:1rem}.border{border-width:1px}.border-b{border-bottom-width:1px}.border-b-\[4px\]{border-bottom-width:4px}.border-t-2{border-top-width:2px}.border-solid{border-style:solid}.border-dashed{border-style:dashed}.border-main-10{--tw-border-opacity:1;border-color:rgb(143 143 143/var(--tw-border-opacity))}.border-main-100{--tw-border-opacity:1;border-color:rgb(17 17 17/var(--tw-border-opacity))}.border-secondary-10{--tw-border-opacity:1;border-color:rgb(209 209 209/var(--tw-border-opacity))}.border-secondary-100{--tw-border-opacity:1;border-color:rgb(249 249 249/var(--tw-border-opacity))}.border-secondary-70{--tw-border-opacity:1;border-color:rgb(189 189 189/var(--tw-border-opacity))}.border-t-main-100{--tw-border-opacity:1;border-top-color:rgb(17 17 17/var(--tw-border-opacity))}.border-t-secondary-100{--tw-border-opacity:1;border-top-color:rgb(249 249 249/var(--tw-border-opacity))}.bg-main-100{--tw-bg-opacity:1;background-color:rgb(17 17 17/var(--tw-bg-opacity))}.bg-main-70{--tw-bg-opacity:1;background-color:rgb(61 61 61/var(--tw-bg-opacity))}.bg-secondary-10{--tw-bg-opacity:1;background-color:rgb(209 209 209/var(--tw-bg-opacity))}.bg-secondary-100{--tw-bg-opacity:1;background-color:rgb(249 249 249/var(--tw-bg-opacity))}.bg-secondary-30{--tw-bg-opacity:1;background-color:rgb(228 228 228/var(--tw-bg-opacity))}.fill-main-100{fill:#111}.object-contain{-o-object-fit:contain;object-fit:contain}.object-cover{-o-object-fit:cover;object-fit:cover}.p-1{padding:.25rem}.p-10{padding:2.5rem}.p-2{padding:.5rem}.p-2\.5{padding:.625rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.\!px-0{padding-left:0!important;padding-right:0!important}.px-0{padding-left:0;padding-right:0}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-24{padding-left:6rem;padding-right:6rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-1{padding-bottom:.25rem;padding-top:.25rem}.py-10{padding-bottom:2.5rem;padding-top:2.5rem}.py-12{padding-bottom:3rem;padding-top:3rem}.py-14{padding-bottom:3.5rem;padding-top:3.5rem}.py-16{padding-bottom:4rem;padding-top:4rem}.py-2{padding-bottom:.5rem;padding-top:.5rem}.py-2\.5{padding-bottom:.625rem;padding-top:.625rem}.py-4{padding-bottom:1rem;padding-top:1rem}.py-8{padding-bottom:2rem;padding-top:2rem}.pb-10{padding-bottom:2.5rem}.pb-24{padding-bottom:6rem}.pb-4{padding-bottom:1rem}.pb-6{padding-bottom:1.5rem}.pb-8{padding-bottom:2rem}.pl-1{padding-left:.25rem}.pt-2{padding-top:.5rem}.pt-2\.5{padding-top:.625rem}.pt-5{padding-top:1.25rem}.pt-8{padding-top:2rem}.text-center{text-align:center}.text-start{text-align:start}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-\[24px\]{font-size:24px}.text-\[88px\]{font-size:88px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-extrabold{font-weight:800}.font-light{font-weight:300}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.italic{font-style:italic}.leading-5{line-height:1.25rem}.leading-\[3\.9\]{line-height:3.9}.leading-tight{line-height:1.25}.tracking-wide{letter-spacing:.025em}.text-main-10{--tw-text-opacity:1;color:rgb(143 143 143/var(--tw-text-opacity))}.text-main-100{--tw-text-opacity:1;color:rgb(17 17 17/var(--tw-text-opacity))}.text-main-70{--tw-text-opacity:1;color:rgb(61 61 61/var(--tw-text-opacity))}.text-secondary-10{--tw-text-opacity:1;color:rgb(209 209 209/var(--tw-text-opacity))}.text-secondary-100{--tw-text-opacity:1;color:rgb(249 249 249/var(--tw-text-opacity))}.text-secondary-30{--tw-text-opacity:1;color:rgb(228 228 228/var(--tw-text-opacity))}.text-secondary-70{--tw-text-opacity:1;color:rgb(189 189 189/var(--tw-text-opacity))}.underline{text-decoration-line:underline}.accent-main-100{accent-color:#111}.opacity-50{opacity:.5}.shadow-\[0px_2px_14px_rgba\(68\2c 68\2c 68\2c 0\.25\)\]{--tw-shadow:0px 2px 14px rgba(68,68,68,.25);--tw-shadow-colored:0px 2px 14px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.outline{outline-style:solid}.outline-1{outline-width:1px}.outline-main-70{outline-color:#3d3d3d}.invert{--tw-invert:invert(100%)}.filter,.invert{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-all{transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-1000{transition-duration:1s}.duration-300{transition-duration:.3s}.duration-500{transition-duration:.5s}.ease-linear{transition-timing-function:linear}.placeholder\:absolute::-moz-placeholder{position:absolute}.placeholder\:absolute::placeholder{position:absolute}.placeholder\:left-\[150px\]::-moz-placeholder{left:150px}.placeholder\:left-\[150px\]::placeholder{left:150px}.placeholder\:left-\[60px\]::-moz-placeholder{left:60px}.placeholder\:left-\[60px\]::placeholder{left:60px}.placeholder\:font-light::-moz-placeholder{font-weight:300}.placeholder\:font-light::placeholder{font-weight:300}.placeholder\:italic::-moz-placeholder{font-style:italic}.placeholder\:italic::placeholder{font-style:italic}.placeholder\:text-main-10::-moz-placeholder{--tw-text-opacity:1;color:rgb(143 143 143/var(--tw-text-opacity))}.placeholder\:text-main-10::placeholder{--tw-text-opacity:1;color:rgb(143 143 143/var(--tw-text-opacity))}.placeholder\:transition-all::-moz-placeholder{transition-duration:.15s;-moz-transition-property:all;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.placeholder\:transition-all::placeholder{transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.before\:pointer-events-none:before{content:var(--tw-content);pointer-events:none}.before\:mr-1:before{content:var(--tw-content);margin-right:.25rem}.before\:mt-\[6\.5px\]:before{content:var(--tw-content);margin-top:6.5px}.before\:box-border:before{box-sizing:border-box;content:var(--tw-content)}.before\:block:before{content:var(--tw-content);display:block}.before\:h-1:before{content:var(--tw-content);height:.25rem}.before\:h-1\.5:before{content:var(--tw-content);height:.375rem}.before\:w-2:before{content:var(--tw-content);width:.5rem}.before\:w-2\.5:before{content:var(--tw-content);width:.625rem}.before\:rounded-tl-lg:before{border-top-left-radius:.5rem;content:var(--tw-content)}.before\:border-0:before{border-width:0;content:var(--tw-content)}.before\:border-l:before{border-left-width:1px;content:var(--tw-content)}.before\:border-t:before{border-top-width:1px;content:var(--tw-content)}.before\:border-main-100:before{--tw-border-opacity:1;border-color:rgb(17 17 17/var(--tw-border-opacity));content:var(--tw-content)}.after\:pointer-events-none:after{content:var(--tw-content);pointer-events:none}.after\:ml-1:after{content:var(--tw-content);margin-left:.25rem}.after\:mt-\[6\.5px\]:after{content:var(--tw-content);margin-top:6.5px}.after\:box-border:after{box-sizing:border-box;content:var(--tw-content)}.after\:block:after{content:var(--tw-content);display:block}.after\:h-1:after{content:var(--tw-content);height:.25rem}.after\:h-1\.5:after{content:var(--tw-content);height:.375rem}.after\:w-2:after{content:var(--tw-content);width:.5rem}.after\:w-2\.5:after{content:var(--tw-content);width:.625rem}.after\:w-full:after{content:var(--tw-content);width:100%}.after\:flex-grow:after{content:var(--tw-content);flex-grow:1}.after\:rounded-tr-lg:after{border-top-right-radius:.5rem;content:var(--tw-content)}.after\:border-0:after{border-width:0;content:var(--tw-content)}.after\:border-r:after{border-right-width:1px;content:var(--tw-content)}.after\:border-t:after{border-top-width:1px;content:var(--tw-content)}.after\:border-main-100:after{--tw-border-opacity:1;border-color:rgb(17 17 17/var(--tw-border-opacity));content:var(--tw-content)}.after\:bg-main-10:after{--tw-bg-opacity:1;background-color:rgb(143 143 143/var(--tw-bg-opacity));content:var(--tw-content)}.after\:bg-secondary-100:after{--tw-bg-opacity:1;background-color:rgb(249 249 249/var(--tw-bg-opacity));content:var(--tw-content)}.after\:content-\[\'\'\]:after{--tw-content:"";content:var(--tw-content)}.first\:mt-0:first-child{margin-top:0}.first\:mt-36:first-child{margin-top:9rem}.even\:flex-row-reverse:nth-child(2n){flex-direction:row-reverse}.placeholder-shown\:border:-moz-placeholder-shown{border-width:1px}.placeholder-shown\:border:placeholder-shown{border-width:1px}.placeholder-shown\:border-main-100:-moz-placeholder-shown{--tw-border-opacity:1;border-color:rgb(17 17 17/var(--tw-border-opacity))}.placeholder-shown\:border-main-100:placeholder-shown{--tw-border-opacity:1;border-color:rgb(17 17 17/var(--tw-border-opacity))}.hover\:bg-main-100:hover{--tw-bg-opacity:1;background-color:rgb(17 17 17/var(--tw-bg-opacity))}.hover\:bg-main-70:hover{--tw-bg-opacity:1;background-color:rgb(61 61 61/var(--tw-bg-opacity))}.hover\:bg-secondary-100:hover{--tw-bg-opacity:1;background-color:rgb(249 249 249/var(--tw-bg-opacity))}.hover\:bg-secondary-30:hover{--tw-bg-opacity:1;background-color:rgb(228 228 228/var(--tw-bg-opacity))}.hover\:text-main-10:hover{--tw-text-opacity:1;color:rgb(143 143 143/var(--tw-text-opacity))}.hover\:text-secondary-10:hover{--tw-text-opacity:1;color:rgb(209 209 209/var(--tw-text-opacity))}.hover\:text-secondary-70:hover{--tw-text-opacity:1;color:rgb(189 189 189/var(--tw-text-opacity))}.hover\:underline:hover{text-decoration-line:underline}.hover\:invert:hover{--tw-invert:invert(100%);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.focus\:border-main-100:focus{--tw-border-opacity:1;border-color:rgb(17 17 17/var(--tw-border-opacity))}.focus\:border-t-secondary-100:focus{--tw-border-opacity:1;border-top-color:rgb(249 249 249/var(--tw-border-opacity))}.focus\:placeholder\:left-4:focus::-moz-placeholder{left:1rem}.focus\:placeholder\:left-4:focus::placeholder{left:1rem}.disabled\:opacity-30:disabled{opacity:.3}.group.hide .group-\[\.hide\]\:hidden{display:none}.peer:-moz-placeholder-shown~.peer-placeholder-shown\:text-sm{font-size:.875rem;line-height:1.25rem}.peer:placeholder-shown~.peer-placeholder-shown\:text-sm{font-size:.875rem;line-height:1.25rem}.peer:-moz-placeholder-shown~.peer-placeholder-shown\:leading-\[3\.9\]{line-height:3.9}.peer:placeholder-shown~.peer-placeholder-shown\:leading-\[3\.9\]{line-height:3.9}.peer:-moz-placeholder-shown~.peer-placeholder-shown\:text-main-100{--tw-text-opacity:1;color:rgb(17 17 17/var(--tw-text-opacity))}.peer:placeholder-shown~.peer-placeholder-shown\:text-main-100{--tw-text-opacity:1;color:rgb(17 17 17/var(--tw-text-opacity))}.peer:-moz-placeholder-shown~.peer-placeholder-shown\:before\:border-0:before{border-width:0;content:var(--tw-content)}.peer:placeholder-shown~.peer-placeholder-shown\:before\:border-0:before{border-width:0;content:var(--tw-content)}.peer:-moz-placeholder-shown~.peer-placeholder-shown\:after\:border-0:after{border-width:0;content:var(--tw-content)}.peer:placeholder-shown~.peer-placeholder-shown\:after\:border-0:after{border-width:0;content:var(--tw-content)}.peer:focus~.peer-focus\:text-xs{font-size:.75rem;line-height:1rem}.peer:focus~.peer-focus\:leading-tight{line-height:1.25}.peer:focus~.peer-focus\:text-main-100{--tw-text-opacity:1;color:rgb(17 17 17/var(--tw-text-opacity))}.peer:focus~.peer-focus\:before\:border-l:before{border-left-width:1px;content:var(--tw-content)}.peer:focus~.peer-focus\:before\:border-t:before{border-top-width:1px;content:var(--tw-content)}.peer:focus~.peer-focus\:before\:border-main-100:before{--tw-border-opacity:1;border-color:rgb(17 17 17/var(--tw-border-opacity));content:var(--tw-content)}.peer:focus~.peer-focus\:after\:border-r:after{border-right-width:1px;content:var(--tw-content)}.peer:focus~.peer-focus\:after\:border-t:after{border-top-width:1px;content:var(--tw-content)}.peer:focus~.peer-focus\:after\:border-main-100:after{--tw-border-opacity:1;border-color:rgb(17 17 17/var(--tw-border-opacity));content:var(--tw-content)}@media (prefers-color-scheme:dark){.dark\:text-secondary-10{--tw-text-opacity:1;color:rgb(209 209 209/var(--tw-text-opacity))}}@media (min-width:640px){.sm\:mb-12{margin-bottom:3rem}.sm\:mb-5{margin-bottom:1.25rem}.sm\:block{display:block}.sm\:hidden{display:none}.sm\:w-64{width:16rem}.sm\:w-auto{width:auto}.sm\:w-max{width:-moz-max-content;width:max-content}.sm\:shrink-0{flex-shrink:0}.sm\:basis-2\/5{flex-basis:40%}.sm\:basis-3\/5{flex-basis:60%}.sm\:basis-5\/6{flex-basis:83.333333%}.sm\:basis-52{flex-basis:13rem}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:justify-start{justify-content:flex-start}.sm\:justify-between{justify-content:space-between}.sm\:gap-5{gap:1.25rem}.sm\:gap-x-10{-moz-column-gap:2.5rem;column-gap:2.5rem}.sm\:px-12{padding-left:3rem;padding-right:3rem}.sm\:px-5{padding-left:1.25rem;padding-right:1.25rem}.sm\:pb-14{padding-bottom:3.5rem}.sm\:pt-16{padding-top:4rem}.sm\:text-end{text-align:end}.sm\:text-3xl{font-size:1.875rem;line-height:2.25rem}.sm\:text-4xl{font-size:2.25rem;line-height:2.5rem}.sm\:text-\[148px\]{font-size:148px}.sm\:text-base{font-size:1rem;line-height:1.5rem}.sm\:text-lg{font-size:1.125rem;line-height:1.75rem}.sm\:last\:hidden:last-child{display:none}}@media (min-width:768px){.md\:left-auto{left:auto}.md\:top-auto{top:auto}.md\:z-0{z-index:0}.md\:-my-2{margin-bottom:-.5rem;margin-top:-.5rem}.md\:mb-12{margin-bottom:3rem}.md\:block{display:block}.md\:flex{display:flex}.md\:hidden{display:none}.md\:w-1\/2{width:50%}.md\:w-\[256px\]{width:256px}.md\:basis-4\/6{flex-basis:66.666667%}.md\:basis-5\/6{flex-basis:83.333333%}.md\:translate-x-full{--tw-translate-x:100%}.md\:translate-x-full,.md\:translate-y-0{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.md\:translate-y-0{--tw-translate-y:0px}.md\:columns-2{-moz-columns:2;column-count:2}.md\:flex-row{flex-direction:row}.md\:justify-start{justify-content:flex-start}.md\:justify-between{justify-content:space-between}.md\:gap-14{gap:3.5rem}.md\:gap-28{gap:7rem}.md\:gap-5{gap:1.25rem}.md\:gap-y-5{row-gap:1.25rem}.md\:p-12{padding:3rem}.md\:\!px-0{padding-left:0!important;padding-right:0!important}.md\:px-20{padding-left:5rem;padding-right:5rem}.md\:px-3{padding-left:.75rem;padding-right:.75rem}.md\:px-6{padding-left:1.5rem;padding-right:1.5rem}.md\:pb-0{padding-bottom:0}.md\:text-start{text-align:start}.md\:first\:mt-0:first-child{margin-top:0}.md\:last\:mb-0:last-child{margin-bottom:0}}@media (min-width:1024px){.lg\:order-none{order:0}.lg\:h-99{height:396px}.lg\:h-full{height:100%}.lg\:w-1\/2{width:50%}.lg\:w-80{width:20rem}.lg\:w-max{width:-moz-max-content;width:max-content}.lg\:basis-1\/2{flex-basis:50%}.lg\:flex-row{flex-direction:row}.lg\:justify-start{justify-content:flex-start}.lg\:gap-10{gap:2.5rem}.lg\:gap-16{gap:4rem}.lg\:gap-28{gap:7rem}.lg\:gap-x-12{-moz-column-gap:3rem;column-gap:3rem}.lg\:px-10{padding-left:2.5rem;padding-right:2.5rem}.lg\:px-12{padding-left:3rem;padding-right:3rem}.lg\:px-8{padding-left:2rem;padding-right:2rem}.lg\:py-0{padding-bottom:0;padding-top:0}.lg\:last\:flex:last-child{display:flex}}@media (min-width:1280px){.xl\:w-\[256px\]{width:256px}.xl\:basis-2\/5{flex-basis:40%}}@media (min-width:1900px){.\33xl\:w-\[400px\]{width:400px}.\33xl\:basis-1\/3{flex-basis:33.333333%}}@media (min-width:2200px){.\34xl\:basis-1\/4{flex-basis:25%}}@font-face{font-display:swap;font-family:Rubik Glitch;font-style:normal;font-weight:400;src:url(/static/rubik-glitch-cyrillic-ext-400-normal-caa98a3bc11105fffcfef482abfb2c37.woff2) format("woff2"),url(/static/rubik-glitch-cyrillic-ext-400-normal-54f97c66997053ace86c1d9f1bdef3fd.woff) format("woff");unicode-range:u+0460-052f,u+1c80-1c88,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-display:swap;font-family:Rubik Glitch;font-style:normal;font-weight:400;src:url(/static/rubik-glitch-cyrillic-400-normal-b32f20a71003e8bb78b28eec73c0385b.woff2) format("woff2"),url(/static/rubik-glitch-cyrillic-400-normal-3fd27e06a8bdf8edbd455443d0854c3f.woff) format("woff");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-display:swap;font-family:Rubik Glitch;font-style:normal;font-weight:400;src:url(/static/rubik-glitch-hebrew-400-normal-776cad11325d90d9061faad0b7107953.woff2) format("woff2"),url(/static/rubik-glitch-hebrew-400-normal-c8cefe9973692c5d21bdd5bb11616cc4.woff) format("woff");unicode-range:u+0590-05ff,u+200c-2010,u+20aa,u+25cc,u+fb1d-fb4f}@font-face{font-display:swap;font-family:Rubik Glitch;font-style:normal;font-weight:400;src:url(/static/rubik-glitch-latin-ext-400-normal-8ae808a02973fec508af9c0959fbbade.woff2) format("woff2"),url(/static/rubik-glitch-latin-ext-400-normal-16c59f7d884842f113e8ff185c8656c9.woff) format("woff");unicode-range:u+0100-02af,u+0304,u+0308,u+0329,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:Rubik Glitch;font-style:normal;font-weight:400;src:url(/static/rubik-glitch-latin-400-normal-7a5b5bac6b066d71b0cae06ed087b905.woff2) format("woff2"),url(/static/rubik-glitch-latin-400-normal-3fb89918ce49908f5350076807cf1bef.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+2074,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:Montserrat Variable;font-style:normal;font-weight:100 900;src:url(/static/montserrat-cyrillic-ext-wght-normal-e84e812b71d18e04e6928fb272665c53.woff2) format("woff2-variations");unicode-range:u+0460-052f,u+1c80-1c88,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-display:swap;font-family:Montserrat Variable;font-style:normal;font-weight:100 900;src:url(/static/montserrat-cyrillic-wght-normal-eb1783eb42487132539645641f761eb2.woff2) format("woff2-variations");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-display:swap;font-family:Montserrat Variable;font-style:normal;font-weight:100 900;src:url(data:font/woff2;base64,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) format("woff2-variations");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-display:swap;font-family:Montserrat Variable;font-style:normal;font-weight:100 900;src:url(/static/montserrat-latin-ext-wght-normal-82d636d9375dd92118fd22c818a99c24.woff2) format("woff2-variations");unicode-range:u+0100-02af,u+0304,u+0308,u+0329,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:Montserrat Variable;font-style:normal;font-weight:100 900;src:url(/static/montserrat-latin-wght-normal-5028c63f6a70ab0cf7cba9015ae04154.woff2) format("woff2-variations");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+2074,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}code[class*=language-],pre[class*=language-]{word-wrap:normal;background:none;color:#ccc;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;text-align:left;white-space:pre;word-break:normal;word-spacing:normal}pre[class*=language-]{margin:.5em 0;overflow:auto;padding:1em}:not(pre)>code[class*=language-],pre[class*=language-]{background:#2d2d2d}:not(pre)>code[class*=language-]{border-radius:.3em;padding:.1em;white-space:normal}.token.block-comment,.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#999}.token.punctuation{color:#ccc}.token.attr-name,.token.deleted,.token.namespace,.token.tag{color:#e2777a}.token.function-name{color:#6196cc}.token.boolean,.token.function,.token.number{color:#f08d49}.token.class-name,.token.constant,.token.property,.token.symbol{color:#f8c555}.token.atrule,.token.builtin,.token.important,.token.keyword,.token.selector{color:#cc99cd}.token.attr-value,.token.char,.token.regex,.token.string,.token.variable{color:#7ec699}.token.entity,.token.operator,.token.url{color:#67cdcc}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.token.inserted{color:green}*{border:0;margin:0;padding:0}*,:after,:before{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}:active,:focus,a:active,a:focus{outline:none}aside,footer,header,nav{display:block}body,html{-ms-text-size-adjust:100%;-moz-text-size-adjust:100%;-webkit-text-size-adjust:100%;font-size:100%;font-size:14px;line-height:1;min-height:100vh}button,input,textarea{font-family:inherit}input::-ms-clear{display:none}button{cursor:pointer}button::-moz-focus-inner{border:0;padding:0}a,a:hover,a:visited{text-decoration:none}ul li{list-style:none}img{vertical-align:top}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:400}*,.banner-title{font-family:Montserrat Variable,Helvetica,Arial,sans-serif}@media screen and (max-width:640px){div#hubspot-messages-iframe-container{display:none!important}}#hubspot-messages-iframe-container{z-index:200!important}#hs-banner-parent{--hs-banner-font-family:"Montserrat Variable",Helvetica,Arial,sans-serif!important;--hs-banner-inset:auto 0px 10px 10px!important;--hs-banner-translate-x:0!important}#hs-eu-cookie-settings-button{font-weight:400!important;text-decoration:none!important}#hs-eu-cookie-confirmation{max-width:calc(100% - 20px)!important}div.privacy-policy h1{font-size:1.875rem;font-weight:600;line-height:2.25rem;text-align:center;width:100%}div.privacy-policy h2{font-size:1.5rem;font-weight:600;line-height:2rem;padding-top:1rem}div.privacy-policy h3{font-size:1.25rem;font-weight:600;line-height:1.75rem;padding-top:1rem}div.privacy-policy h4{font-weight:600;padding-top:.5rem}div.privacy-policy ul li{list-style-position:inside;list-style-type:disc;padding-top:1rem}div.privacy-policy ul li>h3{display:inline;font-weight:500;padding-top:0}div.privacy-policy a{text-decoration-line:underline}div.single-post{font-size:1rem;line-height:1.5rem}@media (min-width:640px){div.single-post{font-size:1.125rem;line-height:1.75rem}}div.single-post :is(h3,h4){--tw-text-opacity:1;color:rgb(249 249 249/var(--tw-text-opacity));font-size:1.125rem;font-weight:700;line-height:1.75rem;margin-bottom:.625rem;margin-top:2rem}@media (min-width:640px){div.single-post :is(h3,h4){font-size:1.25rem;line-height:1.75rem}}div.single-post h4{margin-top:1rem}div.single-post p{margin-bottom:1rem}@media (min-width:640px){div.single-post p{margin-bottom:2rem}}div.single-post span.gatsby-resp-image-wrapper{border-radius:20px!important;margin-bottom:1rem!important;margin-left:auto!important;margin-right:auto!important;max-width:444px!important;width:100%!important}@media (min-width:640px){div.single-post span.gatsby-resp-image-wrapper{margin-bottom:1.25rem!important}}div.single-post img{border-radius:20px!important}div.single-post span.gatsby-resp-image-wrapper+em{display:block;font-size:.875rem;font-style:normal;line-height:1.25rem;text-align:center;width:100%}div.single-post :is(ul,ol){margin-bottom:1rem;margin-top:1rem}@media (min-width:640px){div.single-post :is(ul,ol){margin-bottom:2rem;margin-top:2rem}}div.single-post ul li{list-style-position:inside;list-style-type:disc}div.single-post ol li{list-style-position:inside;list-style-type:decimal}div.single-post pre{--tw-bg-opacity:1;background-color:rgb(61 61 61/var(--tw-bg-opacity));border-radius:20px;font-size:.875rem;line-height:1.25rem;margin-bottom:1rem;margin-top:1rem;padding:1rem;white-space:pre-wrap}@media (min-width:640px){div.single-post pre{font-size:1rem;line-height:1.5rem;margin-bottom:2rem;margin-top:2rem;padding:2rem}}div.single-post pre code{white-space:pre-wrap}div.service-preview{background:linear-gradient(#111 0 0) padding-box,linear-gradient(90deg,#f1f1f1 1 1) border-box}div.service-preview:hover{background:#111}div.service-preview p{padding-top:1.75rem}.gradient-border{-o-border-image:linear-gradient(90deg,#bdbdbd,#111) 30;border-image:linear-gradient(90deg,#bdbdbd,#111) 30}div.team-member:hover div.line{width:100%}div.applied-tech:hover div.line{height:100%}div.review-body p{padding-top:.5rem}div.review-body p:first-child{padding-top:0}div.workflow-step:nth-child(odd) div.cover{right:-.5rem}div.workflow-step:nth-child(2n) div.cover{left:-.5rem}div.why-us-card p{text-align:justify}div.why-us-card:hover div.line{height:100%}p.contact-form-description span{display:block;padding-bottom:.5rem;padding-top:.5rem} \ No newline at end of file diff --git a/styles.c06ccc800b70845881cc.css b/styles.c06ccc800b70845881cc.css new file mode 100644 index 00000000..b3ea4a7e --- /dev/null +++ b/styles.c06ccc800b70845881cc.css @@ -0,0 +1,3 @@ +/* +! tailwindcss v3.3.2 | MIT License | https://tailwindcss.com +*/*,:after,:before{border:0 solid}:after,:before{--tw-content:""}html{-webkit-text-size-adjust:100%;font-feature-settings:normal;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-variation-settings:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{color:inherit;font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{color:#9ca3af;opacity:1}input::placeholder,textarea::placeholder{color:#9ca3af;opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]{display:none}*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1440px){.container{max-width:1440px}}@media (min-width:1900px){.container{max-width:1900px}}@media (min-width:2200px){.container{max-width:2200px}}.pointer-events-none{pointer-events:none}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.-bottom-2{bottom:-.5rem}.-left-5{left:-1.25rem}.-right-6{right:-1.5rem}.-top-2{top:-.5rem}.-top-\[6\.5px\]{top:-6.5px}.bottom-0{bottom:0}.bottom-1{bottom:.25rem}.bottom-\[5\%\]{bottom:5%}.left-0{left:0}.left-1\/2{left:50%}.left-6{left:1.5rem}.left-\[2\%\]{left:2%}.right-0{right:0}.right-6{right:1.5rem}.top-0{top:0}.top-1\/2{top:50%}.top-full{top:100%}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-50{z-index:50}.-order-1{order:-1}.float-right{float:right}.m-2{margin:.5rem}.mx-0{margin-left:0;margin-right:0}.mx-12{margin-left:3rem;margin-right:3rem}.mx-3{margin-left:.75rem;margin-right:.75rem}.mx-5{margin-left:1.25rem;margin-right:1.25rem}.mx-auto{margin-left:auto;margin-right:auto}.my-14{margin-bottom:3.5rem;margin-top:3.5rem}.my-20{margin-bottom:5rem;margin-top:5rem}.my-6{margin-bottom:1.5rem;margin-top:1.5rem}.mb-2{margin-bottom:.5rem}.mb-2\.5{margin-bottom:.625rem}.mb-5{margin-bottom:1.25rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.mr-10{margin-right:2.5rem}.mr-2{margin-right:.5rem}.mr-3{margin-right:.75rem}.mr-3\.5{margin-right:.875rem}.mr-7{margin-right:1.75rem}.mt-3{margin-top:.75rem}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.hidden{display:none}.aspect-square{aspect-ratio:1/1}.h-0{height:0}.h-1{height:.25rem}.h-10{height:2.5rem}.h-12{height:3rem}.h-14{height:3.5rem}.h-16{height:4rem}.h-2\/3{height:66.666667%}.h-32{height:8rem}.h-40{height:10rem}.h-48{height:12rem}.h-5{height:1.25rem}.h-8{height:2rem}.h-91{height:22.75rem}.h-\[72px\]{height:72px}.h-full{height:100%}.h-min{height:-moz-min-content;height:min-content}.max-h-\[424px\]{max-height:424px}.max-h-full{max-height:100%}.min-h-91{min-height:22.75rem}.w-0{width:0}.w-1{width:.25rem}.w-12{width:3rem}.w-14{width:3.5rem}.w-16{width:4rem}.w-2\/3{width:66.666667%}.w-32{width:8rem}.w-40{width:10rem}.w-48{width:12rem}.w-5{width:1.25rem}.w-8{width:2rem}.w-\[100\%\]{width:100%}.w-\[192px\]{width:192px}.w-\[220px\]{width:220px}.w-\[72px\]{width:72px}.w-\[85\%\]{width:85%}.w-full{width:100%}.w-max{width:-moz-max-content;width:max-content}.min-w-10{min-width:2.5rem}.max-w-2xl{max-width:680px}.max-w-4\.5xl{max-width:958px}.max-w-\[1280px\]{max-width:1280px}.max-w-\[320px\]{max-width:320px}.max-w-\[400px\]{max-width:400px}.max-w-\[500px\]{max-width:500px}.max-w-\[528px\]{max-width:528px}.max-w-\[544px\]{max-width:544px}.max-w-\[958px\]{max-width:958px}.flex-1{flex:1 1 0%}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.flex-grow,.grow{flex-grow:1}.basis-1\/6{flex-basis:16.666667%}.basis-4\/6{flex-basis:66.666667%}.basis-full{flex-basis:100%}.-translate-x-1\/2{--tw-translate-x:-50%}.-translate-x-1\/2,.-translate-y-1\/2{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\/2{--tw-translate-y:-50%}.-translate-y-\[120\%\]{--tw-translate-y:-120%}.-translate-y-\[120\%\],.translate-y-0{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-0{--tw-translate-y:0px}.translate-y-full{--tw-translate-y:100%}.-rotate-90,.translate-y-full{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-rotate-90{--tw-rotate:-90deg}@keyframes spin{to{transform:rotate(1turn)}}.animate-spin{animation:spin 1s linear infinite}.cursor-pointer{cursor:pointer}.touch-manipulation{touch-action:manipulation}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize{resize:both}.columns-1{-moz-columns:1;column-count:1}.break-inside-avoid{-moz-column-break-inside:avoid;break-inside:avoid}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}.content-center{align-content:center}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-stretch{align-items:stretch}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.justify-evenly{justify-content:space-evenly}.gap-10{gap:2.5rem}.gap-14{gap:3.5rem}.gap-2{gap:.5rem}.gap-2\.5{gap:.625rem}.gap-3{gap:.75rem}.gap-3\.5{gap:.875rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.gap-x-14{-moz-column-gap:3.5rem;column-gap:3.5rem}.gap-x-16{-moz-column-gap:4rem;column-gap:4rem}.gap-x-20{-moz-column-gap:5rem;column-gap:5rem}.gap-x-24{-moz-column-gap:6rem;column-gap:6rem}.gap-x-28{-moz-column-gap:7rem;column-gap:7rem}.gap-x-5{-moz-column-gap:1.25rem;column-gap:1.25rem}.gap-y-2{row-gap:.5rem}.gap-y-2\.5{row-gap:.625rem}.gap-y-5{row-gap:1.25rem}.gap-y-8{row-gap:2rem}.space-x-10>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(2.5rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(2.5rem*var(--tw-space-x-reverse))}.overflow-hidden{overflow:hidden}.whitespace-normal{white-space:normal}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.rounded{border-radius:.25rem}.rounded-2\.5xl{border-radius:20px}.rounded-2xl{border-radius:1rem}.rounded-\[10px\]{border-radius:10px}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-xl{border-radius:.75rem}.rounded-b-2xl{border-bottom-left-radius:1rem;border-bottom-right-radius:1rem}.border{border-width:1px}.border-b{border-bottom-width:1px}.border-b-\[4px\]{border-bottom-width:4px}.border-t-2{border-top-width:2px}.border-solid{border-style:solid}.border-dashed{border-style:dashed}.border-main-10{--tw-border-opacity:1;border-color:rgb(143 143 143/var(--tw-border-opacity))}.border-main-100{--tw-border-opacity:1;border-color:rgb(17 17 17/var(--tw-border-opacity))}.border-secondary-10{--tw-border-opacity:1;border-color:rgb(209 209 209/var(--tw-border-opacity))}.border-secondary-100{--tw-border-opacity:1;border-color:rgb(249 249 249/var(--tw-border-opacity))}.border-secondary-70{--tw-border-opacity:1;border-color:rgb(189 189 189/var(--tw-border-opacity))}.border-t-main-100{--tw-border-opacity:1;border-top-color:rgb(17 17 17/var(--tw-border-opacity))}.border-t-secondary-100{--tw-border-opacity:1;border-top-color:rgb(249 249 249/var(--tw-border-opacity))}.bg-main-100{--tw-bg-opacity:1;background-color:rgb(17 17 17/var(--tw-bg-opacity))}.bg-main-70{--tw-bg-opacity:1;background-color:rgb(61 61 61/var(--tw-bg-opacity))}.bg-secondary-10{--tw-bg-opacity:1;background-color:rgb(209 209 209/var(--tw-bg-opacity))}.bg-secondary-100{--tw-bg-opacity:1;background-color:rgb(249 249 249/var(--tw-bg-opacity))}.bg-secondary-30{--tw-bg-opacity:1;background-color:rgb(228 228 228/var(--tw-bg-opacity))}.fill-main-100{fill:#111}.object-contain{-o-object-fit:contain;object-fit:contain}.object-cover{-o-object-fit:cover;object-fit:cover}.p-1{padding:.25rem}.p-10{padding:2.5rem}.p-2{padding:.5rem}.p-2\.5{padding:.625rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.\!px-0{padding-left:0!important;padding-right:0!important}.px-0{padding-left:0;padding-right:0}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-24{padding-left:6rem;padding-right:6rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-1{padding-bottom:.25rem;padding-top:.25rem}.py-10{padding-bottom:2.5rem;padding-top:2.5rem}.py-12{padding-bottom:3rem;padding-top:3rem}.py-14{padding-bottom:3.5rem;padding-top:3.5rem}.py-16{padding-bottom:4rem;padding-top:4rem}.py-2{padding-bottom:.5rem;padding-top:.5rem}.py-2\.5{padding-bottom:.625rem;padding-top:.625rem}.py-4{padding-bottom:1rem;padding-top:1rem}.py-8{padding-bottom:2rem;padding-top:2rem}.pb-10{padding-bottom:2.5rem}.pb-24{padding-bottom:6rem}.pb-4{padding-bottom:1rem}.pb-6{padding-bottom:1.5rem}.pb-8{padding-bottom:2rem}.pl-1{padding-left:.25rem}.pt-2{padding-top:.5rem}.pt-2\.5{padding-top:.625rem}.pt-5{padding-top:1.25rem}.pt-8{padding-top:2rem}.text-center{text-align:center}.text-start{text-align:start}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-\[24px\]{font-size:24px}.text-\[88px\]{font-size:88px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-extrabold{font-weight:800}.font-light{font-weight:300}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.italic{font-style:italic}.leading-5{line-height:1.25rem}.leading-\[3\.9\]{line-height:3.9}.leading-tight{line-height:1.25}.tracking-wide{letter-spacing:.025em}.text-main-10{--tw-text-opacity:1;color:rgb(143 143 143/var(--tw-text-opacity))}.text-main-100{--tw-text-opacity:1;color:rgb(17 17 17/var(--tw-text-opacity))}.text-main-70{--tw-text-opacity:1;color:rgb(61 61 61/var(--tw-text-opacity))}.text-secondary-10{--tw-text-opacity:1;color:rgb(209 209 209/var(--tw-text-opacity))}.text-secondary-100{--tw-text-opacity:1;color:rgb(249 249 249/var(--tw-text-opacity))}.text-secondary-30{--tw-text-opacity:1;color:rgb(228 228 228/var(--tw-text-opacity))}.text-secondary-70{--tw-text-opacity:1;color:rgb(189 189 189/var(--tw-text-opacity))}.underline{text-decoration-line:underline}.accent-main-100{accent-color:#111}.opacity-50{opacity:.5}.shadow-\[0px_2px_14px_rgba\(68\2c 68\2c 68\2c 0\.25\)\]{--tw-shadow:0px 2px 14px rgba(68,68,68,.25);--tw-shadow-colored:0px 2px 14px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.outline{outline-style:solid}.outline-1{outline-width:1px}.outline-main-70{outline-color:#3d3d3d}.grayscale{--tw-grayscale:grayscale(100%)}.grayscale,.invert{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.invert{--tw-invert:invert(100%)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-all{transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-1000{transition-duration:1s}.duration-300{transition-duration:.3s}.duration-500{transition-duration:.5s}.ease-linear{transition-timing-function:linear}.placeholder\:absolute::-moz-placeholder{position:absolute}.placeholder\:absolute::placeholder{position:absolute}.placeholder\:left-\[150px\]::-moz-placeholder{left:150px}.placeholder\:left-\[150px\]::placeholder{left:150px}.placeholder\:left-\[60px\]::-moz-placeholder{left:60px}.placeholder\:left-\[60px\]::placeholder{left:60px}.placeholder\:font-light::-moz-placeholder{font-weight:300}.placeholder\:font-light::placeholder{font-weight:300}.placeholder\:italic::-moz-placeholder{font-style:italic}.placeholder\:italic::placeholder{font-style:italic}.placeholder\:text-main-10::-moz-placeholder{--tw-text-opacity:1;color:rgb(143 143 143/var(--tw-text-opacity))}.placeholder\:text-main-10::placeholder{--tw-text-opacity:1;color:rgb(143 143 143/var(--tw-text-opacity))}.placeholder\:transition-all::-moz-placeholder{transition-duration:.15s;-moz-transition-property:all;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.placeholder\:transition-all::placeholder{transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.before\:pointer-events-none:before{content:var(--tw-content);pointer-events:none}.before\:mr-1:before{content:var(--tw-content);margin-right:.25rem}.before\:mt-\[6\.5px\]:before{content:var(--tw-content);margin-top:6.5px}.before\:box-border:before{box-sizing:border-box;content:var(--tw-content)}.before\:block:before{content:var(--tw-content);display:block}.before\:h-1:before{content:var(--tw-content);height:.25rem}.before\:h-1\.5:before{content:var(--tw-content);height:.375rem}.before\:w-2:before{content:var(--tw-content);width:.5rem}.before\:w-2\.5:before{content:var(--tw-content);width:.625rem}.before\:rounded-tl-lg:before{border-top-left-radius:.5rem;content:var(--tw-content)}.before\:border-0:before{border-width:0;content:var(--tw-content)}.before\:border-l:before{border-left-width:1px;content:var(--tw-content)}.before\:border-t:before{border-top-width:1px;content:var(--tw-content)}.before\:border-main-100:before{--tw-border-opacity:1;border-color:rgb(17 17 17/var(--tw-border-opacity));content:var(--tw-content)}.after\:pointer-events-none:after{content:var(--tw-content);pointer-events:none}.after\:ml-1:after{content:var(--tw-content);margin-left:.25rem}.after\:mt-\[6\.5px\]:after{content:var(--tw-content);margin-top:6.5px}.after\:box-border:after{box-sizing:border-box;content:var(--tw-content)}.after\:block:after{content:var(--tw-content);display:block}.after\:h-1:after{content:var(--tw-content);height:.25rem}.after\:h-1\.5:after{content:var(--tw-content);height:.375rem}.after\:w-2:after{content:var(--tw-content);width:.5rem}.after\:w-2\.5:after{content:var(--tw-content);width:.625rem}.after\:w-full:after{content:var(--tw-content);width:100%}.after\:flex-grow:after{content:var(--tw-content);flex-grow:1}.after\:rounded-tr-lg:after{border-top-right-radius:.5rem;content:var(--tw-content)}.after\:border-0:after{border-width:0;content:var(--tw-content)}.after\:border-r:after{border-right-width:1px;content:var(--tw-content)}.after\:border-t:after{border-top-width:1px;content:var(--tw-content)}.after\:border-main-100:after{--tw-border-opacity:1;border-color:rgb(17 17 17/var(--tw-border-opacity));content:var(--tw-content)}.after\:bg-main-10:after{--tw-bg-opacity:1;background-color:rgb(143 143 143/var(--tw-bg-opacity));content:var(--tw-content)}.after\:bg-secondary-100:after{--tw-bg-opacity:1;background-color:rgb(249 249 249/var(--tw-bg-opacity));content:var(--tw-content)}.after\:content-\[\'\'\]:after{--tw-content:"";content:var(--tw-content)}.first\:mt-0:first-child{margin-top:0}.first\:mt-36:first-child{margin-top:9rem}.even\:flex-row-reverse:nth-child(2n){flex-direction:row-reverse}.placeholder-shown\:border:-moz-placeholder-shown{border-width:1px}.placeholder-shown\:border:placeholder-shown{border-width:1px}.placeholder-shown\:border-main-100:-moz-placeholder-shown{--tw-border-opacity:1;border-color:rgb(17 17 17/var(--tw-border-opacity))}.placeholder-shown\:border-main-100:placeholder-shown{--tw-border-opacity:1;border-color:rgb(17 17 17/var(--tw-border-opacity))}.hover\:bg-main-100:hover{--tw-bg-opacity:1;background-color:rgb(17 17 17/var(--tw-bg-opacity))}.hover\:bg-main-70:hover{--tw-bg-opacity:1;background-color:rgb(61 61 61/var(--tw-bg-opacity))}.hover\:bg-secondary-100:hover{--tw-bg-opacity:1;background-color:rgb(249 249 249/var(--tw-bg-opacity))}.hover\:bg-secondary-30:hover{--tw-bg-opacity:1;background-color:rgb(228 228 228/var(--tw-bg-opacity))}.hover\:text-main-10:hover{--tw-text-opacity:1;color:rgb(143 143 143/var(--tw-text-opacity))}.hover\:text-secondary-10:hover{--tw-text-opacity:1;color:rgb(209 209 209/var(--tw-text-opacity))}.hover\:text-secondary-70:hover{--tw-text-opacity:1;color:rgb(189 189 189/var(--tw-text-opacity))}.hover\:underline:hover{text-decoration-line:underline}.hover\:invert:hover{--tw-invert:invert(100%);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.focus\:border-main-100:focus{--tw-border-opacity:1;border-color:rgb(17 17 17/var(--tw-border-opacity))}.focus\:border-t-secondary-100:focus{--tw-border-opacity:1;border-top-color:rgb(249 249 249/var(--tw-border-opacity))}.focus\:placeholder\:left-4:focus::-moz-placeholder{left:1rem}.focus\:placeholder\:left-4:focus::placeholder{left:1rem}.disabled\:opacity-30:disabled{opacity:.3}.group.hide .group-\[\.hide\]\:hidden{display:none}.peer:-moz-placeholder-shown~.peer-placeholder-shown\:text-sm{font-size:.875rem;line-height:1.25rem}.peer:placeholder-shown~.peer-placeholder-shown\:text-sm{font-size:.875rem;line-height:1.25rem}.peer:-moz-placeholder-shown~.peer-placeholder-shown\:leading-\[3\.9\]{line-height:3.9}.peer:placeholder-shown~.peer-placeholder-shown\:leading-\[3\.9\]{line-height:3.9}.peer:-moz-placeholder-shown~.peer-placeholder-shown\:text-main-100{--tw-text-opacity:1;color:rgb(17 17 17/var(--tw-text-opacity))}.peer:placeholder-shown~.peer-placeholder-shown\:text-main-100{--tw-text-opacity:1;color:rgb(17 17 17/var(--tw-text-opacity))}.peer:-moz-placeholder-shown~.peer-placeholder-shown\:before\:border-0:before{border-width:0;content:var(--tw-content)}.peer:placeholder-shown~.peer-placeholder-shown\:before\:border-0:before{border-width:0;content:var(--tw-content)}.peer:-moz-placeholder-shown~.peer-placeholder-shown\:after\:border-0:after{border-width:0;content:var(--tw-content)}.peer:placeholder-shown~.peer-placeholder-shown\:after\:border-0:after{border-width:0;content:var(--tw-content)}.peer:focus~.peer-focus\:text-xs{font-size:.75rem;line-height:1rem}.peer:focus~.peer-focus\:leading-tight{line-height:1.25}.peer:focus~.peer-focus\:text-main-100{--tw-text-opacity:1;color:rgb(17 17 17/var(--tw-text-opacity))}.peer:focus~.peer-focus\:before\:border-l:before{border-left-width:1px;content:var(--tw-content)}.peer:focus~.peer-focus\:before\:border-t:before{border-top-width:1px;content:var(--tw-content)}.peer:focus~.peer-focus\:before\:border-main-100:before{--tw-border-opacity:1;border-color:rgb(17 17 17/var(--tw-border-opacity));content:var(--tw-content)}.peer:focus~.peer-focus\:after\:border-r:after{border-right-width:1px;content:var(--tw-content)}.peer:focus~.peer-focus\:after\:border-t:after{border-top-width:1px;content:var(--tw-content)}.peer:focus~.peer-focus\:after\:border-main-100:after{--tw-border-opacity:1;border-color:rgb(17 17 17/var(--tw-border-opacity));content:var(--tw-content)}@media (prefers-color-scheme:dark){.dark\:text-secondary-10{--tw-text-opacity:1;color:rgb(209 209 209/var(--tw-text-opacity))}}@media (min-width:640px){.sm\:mb-12{margin-bottom:3rem}.sm\:mb-5{margin-bottom:1.25rem}.sm\:block{display:block}.sm\:hidden{display:none}.sm\:w-64{width:16rem}.sm\:w-auto{width:auto}.sm\:w-max{width:-moz-max-content;width:max-content}.sm\:shrink-0{flex-shrink:0}.sm\:basis-2\/5{flex-basis:40%}.sm\:basis-3\/5{flex-basis:60%}.sm\:basis-5\/6{flex-basis:83.333333%}.sm\:basis-52{flex-basis:13rem}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:justify-start{justify-content:flex-start}.sm\:justify-between{justify-content:space-between}.sm\:gap-5{gap:1.25rem}.sm\:gap-x-10{-moz-column-gap:2.5rem;column-gap:2.5rem}.sm\:px-12{padding-left:3rem;padding-right:3rem}.sm\:px-5{padding-left:1.25rem;padding-right:1.25rem}.sm\:pb-14{padding-bottom:3.5rem}.sm\:pt-16{padding-top:4rem}.sm\:text-end{text-align:end}.sm\:text-3xl{font-size:1.875rem;line-height:2.25rem}.sm\:text-4xl{font-size:2.25rem;line-height:2.5rem}.sm\:text-\[148px\]{font-size:148px}.sm\:text-base{font-size:1rem;line-height:1.5rem}.sm\:text-lg{font-size:1.125rem;line-height:1.75rem}.sm\:last\:hidden:last-child{display:none}}@media (min-width:768px){.md\:left-auto{left:auto}.md\:top-auto{top:auto}.md\:z-0{z-index:0}.md\:-my-2{margin-bottom:-.5rem;margin-top:-.5rem}.md\:mb-12{margin-bottom:3rem}.md\:block{display:block}.md\:flex{display:flex}.md\:hidden{display:none}.md\:w-1\/2{width:50%}.md\:w-\[256px\]{width:256px}.md\:basis-4\/6{flex-basis:66.666667%}.md\:basis-5\/6{flex-basis:83.333333%}.md\:translate-x-full{--tw-translate-x:100%}.md\:translate-x-full,.md\:translate-y-0{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.md\:translate-y-0{--tw-translate-y:0px}.md\:columns-2{-moz-columns:2;column-count:2}.md\:flex-row{flex-direction:row}.md\:justify-start{justify-content:flex-start}.md\:justify-between{justify-content:space-between}.md\:gap-14{gap:3.5rem}.md\:gap-28{gap:7rem}.md\:gap-5{gap:1.25rem}.md\:gap-y-5{row-gap:1.25rem}.md\:p-12{padding:3rem}.md\:\!px-0{padding-left:0!important;padding-right:0!important}.md\:px-20{padding-left:5rem;padding-right:5rem}.md\:px-3{padding-left:.75rem;padding-right:.75rem}.md\:px-6{padding-left:1.5rem;padding-right:1.5rem}.md\:pb-0{padding-bottom:0}.md\:text-start{text-align:start}.md\:first\:mt-0:first-child{margin-top:0}.md\:last\:mb-0:last-child{margin-bottom:0}}@media (min-width:1024px){.lg\:order-none{order:0}.lg\:h-99{height:396px}.lg\:h-full{height:100%}.lg\:w-1\/2{width:50%}.lg\:w-80{width:20rem}.lg\:w-max{width:-moz-max-content;width:max-content}.lg\:basis-1\/2{flex-basis:50%}.lg\:flex-row{flex-direction:row}.lg\:justify-start{justify-content:flex-start}.lg\:gap-10{gap:2.5rem}.lg\:gap-16{gap:4rem}.lg\:gap-28{gap:7rem}.lg\:gap-x-12{-moz-column-gap:3rem;column-gap:3rem}.lg\:px-10{padding-left:2.5rem;padding-right:2.5rem}.lg\:px-12{padding-left:3rem;padding-right:3rem}.lg\:px-8{padding-left:2rem;padding-right:2rem}.lg\:py-0{padding-bottom:0;padding-top:0}.lg\:last\:flex:last-child{display:flex}}@media (min-width:1280px){.xl\:w-\[256px\]{width:256px}.xl\:basis-2\/5{flex-basis:40%}}@media (min-width:1900px){.\33xl\:w-\[400px\]{width:400px}.\33xl\:basis-1\/3{flex-basis:33.333333%}}@media (min-width:2200px){.\34xl\:basis-1\/4{flex-basis:25%}}@font-face{font-display:swap;font-family:Rubik Glitch;font-style:normal;font-weight:400;src:url(/static/rubik-glitch-cyrillic-ext-400-normal-caa98a3bc11105fffcfef482abfb2c37.woff2) format("woff2"),url(/static/rubik-glitch-cyrillic-ext-400-normal-54f97c66997053ace86c1d9f1bdef3fd.woff) format("woff");unicode-range:u+0460-052f,u+1c80-1c88,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-display:swap;font-family:Rubik Glitch;font-style:normal;font-weight:400;src:url(/static/rubik-glitch-cyrillic-400-normal-b32f20a71003e8bb78b28eec73c0385b.woff2) format("woff2"),url(/static/rubik-glitch-cyrillic-400-normal-3fd27e06a8bdf8edbd455443d0854c3f.woff) format("woff");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-display:swap;font-family:Rubik Glitch;font-style:normal;font-weight:400;src:url(/static/rubik-glitch-hebrew-400-normal-776cad11325d90d9061faad0b7107953.woff2) format("woff2"),url(/static/rubik-glitch-hebrew-400-normal-c8cefe9973692c5d21bdd5bb11616cc4.woff) format("woff");unicode-range:u+0590-05ff,u+200c-2010,u+20aa,u+25cc,u+fb1d-fb4f}@font-face{font-display:swap;font-family:Rubik Glitch;font-style:normal;font-weight:400;src:url(/static/rubik-glitch-latin-ext-400-normal-8ae808a02973fec508af9c0959fbbade.woff2) format("woff2"),url(/static/rubik-glitch-latin-ext-400-normal-16c59f7d884842f113e8ff185c8656c9.woff) format("woff");unicode-range:u+0100-02af,u+0304,u+0308,u+0329,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:Rubik Glitch;font-style:normal;font-weight:400;src:url(/static/rubik-glitch-latin-400-normal-7a5b5bac6b066d71b0cae06ed087b905.woff2) format("woff2"),url(/static/rubik-glitch-latin-400-normal-3fb89918ce49908f5350076807cf1bef.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+2074,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:Montserrat Variable;font-style:normal;font-weight:100 900;src:url(/static/montserrat-cyrillic-ext-wght-normal-e84e812b71d18e04e6928fb272665c53.woff2) format("woff2-variations");unicode-range:u+0460-052f,u+1c80-1c88,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-display:swap;font-family:Montserrat Variable;font-style:normal;font-weight:100 900;src:url(/static/montserrat-cyrillic-wght-normal-eb1783eb42487132539645641f761eb2.woff2) format("woff2-variations");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-display:swap;font-family:Montserrat Variable;font-style:normal;font-weight:100 900;src:url(data:font/woff2;base64,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) format("woff2-variations");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-display:swap;font-family:Montserrat Variable;font-style:normal;font-weight:100 900;src:url(/static/montserrat-latin-ext-wght-normal-82d636d9375dd92118fd22c818a99c24.woff2) format("woff2-variations");unicode-range:u+0100-02af,u+0304,u+0308,u+0329,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:Montserrat Variable;font-style:normal;font-weight:100 900;src:url(/static/montserrat-latin-wght-normal-5028c63f6a70ab0cf7cba9015ae04154.woff2) format("woff2-variations");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+2074,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}code[class*=language-],pre[class*=language-]{word-wrap:normal;background:none;color:#ccc;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;text-align:left;white-space:pre;word-break:normal;word-spacing:normal}pre[class*=language-]{margin:.5em 0;overflow:auto;padding:1em}:not(pre)>code[class*=language-],pre[class*=language-]{background:#2d2d2d}:not(pre)>code[class*=language-]{border-radius:.3em;padding:.1em;white-space:normal}.token.block-comment,.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#999}.token.punctuation{color:#ccc}.token.attr-name,.token.deleted,.token.namespace,.token.tag{color:#e2777a}.token.function-name{color:#6196cc}.token.boolean,.token.function,.token.number{color:#f08d49}.token.class-name,.token.constant,.token.property,.token.symbol{color:#f8c555}.token.atrule,.token.builtin,.token.important,.token.keyword,.token.selector{color:#cc99cd}.token.attr-value,.token.char,.token.regex,.token.string,.token.variable{color:#7ec699}.token.entity,.token.operator,.token.url{color:#67cdcc}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.token.inserted{color:green}*{border:0;margin:0;padding:0}*,:after,:before{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}:active,:focus,a:active,a:focus{outline:none}aside,footer,header,nav{display:block}body,html{-ms-text-size-adjust:100%;-moz-text-size-adjust:100%;-webkit-text-size-adjust:100%;font-size:100%;font-size:14px;line-height:1;min-height:100vh}button,input,textarea{font-family:inherit}input::-ms-clear{display:none}button{cursor:pointer}button::-moz-focus-inner{border:0;padding:0}a,a:hover,a:visited{text-decoration:none}ul li{list-style:none}img{vertical-align:top}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:400}*,.banner-title{font-family:Montserrat Variable,Helvetica,Arial,sans-serif}@media screen and (max-width:640px){div#hubspot-messages-iframe-container{display:none!important}}#hubspot-messages-iframe-container{z-index:200!important}#hs-banner-parent{--hs-banner-font-family:"Montserrat Variable",Helvetica,Arial,sans-serif!important;--hs-banner-inset:auto 0px 10px 10px!important;--hs-banner-translate-x:0!important}#hs-eu-cookie-settings-button{font-weight:400!important;text-decoration:none!important}#hs-eu-cookie-confirmation{max-width:calc(100% - 20px)!important}div.privacy-policy h1{font-size:1.875rem;font-weight:600;line-height:2.25rem;text-align:center;width:100%}div.privacy-policy h2{font-size:1.5rem;font-weight:600;line-height:2rem;padding-top:1rem}div.privacy-policy h3{font-size:1.25rem;font-weight:600;line-height:1.75rem;padding-top:1rem}div.privacy-policy h4{font-weight:600;padding-top:.5rem}div.privacy-policy ul li{list-style-position:inside;list-style-type:disc;padding-top:1rem}div.privacy-policy ul li>h3{display:inline;font-weight:500;padding-top:0}div.privacy-policy a{text-decoration-line:underline}div.single-post{font-size:1rem;line-height:1.5rem}@media (min-width:640px){div.single-post{font-size:1.125rem;line-height:1.75rem}}div.single-post :is(h3,h4){--tw-text-opacity:1;color:rgb(249 249 249/var(--tw-text-opacity));font-size:1.125rem;font-weight:700;line-height:1.75rem;margin-bottom:.625rem;margin-top:2rem}@media (min-width:640px){div.single-post :is(h3,h4){font-size:1.25rem;line-height:1.75rem}}div.single-post h4{margin-top:1rem}div.single-post p{margin-bottom:1rem}@media (min-width:640px){div.single-post p{margin-bottom:2rem}}div.single-post span.gatsby-resp-image-wrapper{border-radius:20px!important;margin-bottom:1rem!important;margin-left:auto!important;margin-right:auto!important;max-width:444px!important;width:100%!important}@media (min-width:640px){div.single-post span.gatsby-resp-image-wrapper{margin-bottom:1.25rem!important}}div.single-post img{border-radius:20px!important}div.single-post span.gatsby-resp-image-wrapper+em{display:block;font-size:.875rem;font-style:normal;line-height:1.25rem;text-align:center;width:100%}div.single-post :is(ul,ol){margin-bottom:1rem;margin-top:1rem}@media (min-width:640px){div.single-post :is(ul,ol){margin-bottom:2rem;margin-top:2rem}}div.single-post ul li{list-style-position:inside;list-style-type:disc}div.single-post ol li{list-style-position:inside;list-style-type:decimal}div.single-post pre{--tw-bg-opacity:1;background-color:rgb(61 61 61/var(--tw-bg-opacity));border-radius:20px;font-size:.875rem;line-height:1.25rem;margin-bottom:1rem;margin-top:1rem;padding:1rem;white-space:pre-wrap}@media (min-width:640px){div.single-post pre{font-size:1rem;line-height:1.5rem;margin-bottom:2rem;margin-top:2rem;padding:2rem}}div.single-post pre code{white-space:pre-wrap}div.service-preview{background:linear-gradient(#111 0 0) padding-box,linear-gradient(90deg,#f1f1f1 1 1) border-box}div.service-preview:hover{background:#111}div.service-preview p{padding-top:1.75rem}.gradient-border{-o-border-image:linear-gradient(90deg,#bdbdbd,#111) 30;border-image:linear-gradient(90deg,#bdbdbd,#111) 30}div.team-member:hover div.line{width:100%}div.applied-tech:hover div.line{height:100%}div.review-body p{padding-top:.5rem}div.review-body p:first-child{padding-top:0}div.workflow-step:nth-child(odd) div.cover{right:-.5rem}div.workflow-step:nth-child(2n) div.cover{left:-.5rem}div.why-us-card p{text-align:justify}div.why-us-card:hover div.line{height:100%}p.contact-form-description span{display:block;padding-bottom:.5rem;padding-top:.5rem} \ No newline at end of file diff --git a/webpack-runtime-7fd23ed30c6a3828a012.js b/webpack-runtime-8eccf7df369f009ba9d4.js similarity index 95% rename from webpack-runtime-7fd23ed30c6a3828a012.js rename to webpack-runtime-8eccf7df369f009ba9d4.js index 9f3b405d..58791916 100644 --- a/webpack-runtime-7fd23ed30c6a3828a012.js +++ b/webpack-runtime-8eccf7df369f009ba9d4.js @@ -1,2 +1,2 @@ -!function(){"use strict";var e,t,n,r,o,c={},a={};function f(e){var t=a[e];if(void 0!==t)return t.exports;var n=a[e]={exports:{}};return c[e](n,n.exports,f),n.exports}f.m=c,e=[],f.O=function(t,n,r,o){if(!n){var c=1/0;for(s=0;s=o)&&Object.keys(f.O).every((function(e){return f.O[e](n[i])}))?n.splice(i--,1):(a=!1,o0&&e[s-1][2]>o;s--)e[s]=e[s-1];e[s]=[n,r,o]},f.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return f.d(t,{a:t}),t},n=Object.getPrototypeOf?function(e){return Object.getPrototypeOf(e)}:function(e){return e.__proto__},f.t=function(e,r){if(1&r&&(e=this(e)),8&r)return e;if("object"==typeof e&&e){if(4&r&&e.__esModule)return e;if(16&r&&"function"==typeof e.then)return e}var o=Object.create(null);f.r(o);var c={};t=t||[null,n({}),n([]),n(n)];for(var a=2&r&&e;"object"==typeof a&&!~t.indexOf(a);a=n(a))Object.getOwnPropertyNames(a).forEach((function(t){c[t]=function(){return e[t]}}));return c.default=function(){return e},f.d(o,c),o},f.d=function(e,t){for(var n in t)f.o(t,n)&&!f.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},f.f={},f.e=function(e){return Promise.all(Object.keys(f.f).reduce((function(t,n){return f.f[n](e,t),t}),[]))},f.u=function(e){return({147:"component---src-pages-templates-project-tsx",149:"component---src-pages-templates-policies-tsx",218:"component---src-pages-404-tsx",252:"d30a71578427adb006614dd8857449316a352827",354:"component---src-pages-templates-post-tsx",374:"1470453bba0c0cc23f8aa20c3cefd756f6b7fd4b",417:"component---src-pages-templates-services-tsx",548:"component---src-pages-templates-workflow-tsx",650:"component---src-pages-templates-projects-tsx",832:"component---src-pages-templates-index-tsx",926:"component---src-pages-templates-blog-tsx"}[e]||e)+"-"+{147:"9b1b9adbc9274b4f8970",149:"15f53bf827c36e52ae75",218:"8854ec07bcd813a2d5d9",252:"2d8abc9ca321acaca0df",354:"e7fee33879d8795210bf",374:"836ed7a6c9535bee39d1",417:"5c395c45f908b7df0b61",475:"3e46bce72021fe5f8d9d",548:"5b55b4b34202d84e478f",650:"55b0a27fe736ce512ff7",731:"fc2222e8bcbd3a323b37",832:"9eb91922ad7dfced24d1",843:"82fd7f798c0dd9a6f67b",926:"e632eeb611475b6922a9"}[e]+".js"},f.miniCssF=function(e){return"styles.5b25a794d449e83a4778.css"},f.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),f.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r={},o="code-cave:",f.l=function(e,t,n,c){if(r[e])r[e].push(t);else{var a,i;if(void 0!==n)for(var u=document.getElementsByTagName("script"),s=0;s=o)&&Object.keys(f.O).every((function(e){return f.O[e](n[i])}))?n.splice(i--,1):(a=!1,o0&&e[s-1][2]>o;s--)e[s]=e[s-1];e[s]=[n,r,o]},f.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return f.d(t,{a:t}),t},n=Object.getPrototypeOf?function(e){return Object.getPrototypeOf(e)}:function(e){return e.__proto__},f.t=function(e,r){if(1&r&&(e=this(e)),8&r)return e;if("object"==typeof e&&e){if(4&r&&e.__esModule)return e;if(16&r&&"function"==typeof e.then)return e}var o=Object.create(null);f.r(o);var c={};t=t||[null,n({}),n([]),n(n)];for(var a=2&r&&e;"object"==typeof a&&!~t.indexOf(a);a=n(a))Object.getOwnPropertyNames(a).forEach((function(t){c[t]=function(){return e[t]}}));return c.default=function(){return e},f.d(o,c),o},f.d=function(e,t){for(var n in t)f.o(t,n)&&!f.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},f.f={},f.e=function(e){return Promise.all(Object.keys(f.f).reduce((function(t,n){return f.f[n](e,t),t}),[]))},f.u=function(e){return({147:"component---src-pages-templates-project-tsx",149:"component---src-pages-templates-policies-tsx",218:"component---src-pages-404-tsx",252:"d30a71578427adb006614dd8857449316a352827",354:"component---src-pages-templates-post-tsx",374:"1470453bba0c0cc23f8aa20c3cefd756f6b7fd4b",417:"component---src-pages-templates-services-tsx",548:"component---src-pages-templates-workflow-tsx",650:"component---src-pages-templates-projects-tsx",832:"component---src-pages-templates-index-tsx",926:"component---src-pages-templates-blog-tsx"}[e]||e)+"-"+{147:"9b1b9adbc9274b4f8970",149:"15f53bf827c36e52ae75",218:"8854ec07bcd813a2d5d9",252:"2d8abc9ca321acaca0df",354:"f7d7682c4496902d891d",374:"836ed7a6c9535bee39d1",417:"5c395c45f908b7df0b61",475:"3e46bce72021fe5f8d9d",548:"5b55b4b34202d84e478f",650:"55b0a27fe736ce512ff7",731:"fc2222e8bcbd3a323b37",832:"9eb91922ad7dfced24d1",843:"82fd7f798c0dd9a6f67b",926:"e632eeb611475b6922a9"}[e]+".js"},f.miniCssF=function(e){return"styles.c06ccc800b70845881cc.css"},f.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),f.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r={},o="code-cave:",f.l=function(e,t,n,c){if(r[e])r[e].push(t);else{var a,i;if(void 0!==n)for(var u=document.getElementsByTagName("script"),s=0;s 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var getProto = Object.getPrototypeOf ? function(obj) { return Object.getPrototypeOf(obj); } : function(obj) { return obj.__proto__; };\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach(function(key) { def[key] = function() { return value[key]; }; });\n\t}\n\tdef['default'] = function() { return value; };\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"code-cave:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(url, done, key, chunkId) {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = function(prev, event) {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach(function(fn) { return fn(event); });\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = function(chunkId) {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"\" + ({\"147\":\"component---src-pages-templates-project-tsx\",\"149\":\"component---src-pages-templates-policies-tsx\",\"218\":\"component---src-pages-404-tsx\",\"252\":\"d30a71578427adb006614dd8857449316a352827\",\"354\":\"component---src-pages-templates-post-tsx\",\"374\":\"1470453bba0c0cc23f8aa20c3cefd756f6b7fd4b\",\"417\":\"component---src-pages-templates-services-tsx\",\"548\":\"component---src-pages-templates-workflow-tsx\",\"650\":\"component---src-pages-templates-projects-tsx\",\"832\":\"component---src-pages-templates-index-tsx\",\"926\":\"component---src-pages-templates-blog-tsx\"}[chunkId] || chunkId) + \"-\" + {\"147\":\"9b1b9adbc9274b4f8970\",\"149\":\"15f53bf827c36e52ae75\",\"218\":\"8854ec07bcd813a2d5d9\",\"252\":\"2d8abc9ca321acaca0df\",\"354\":\"e7fee33879d8795210bf\",\"374\":\"836ed7a6c9535bee39d1\",\"417\":\"5c395c45f908b7df0b61\",\"475\":\"3e46bce72021fe5f8d9d\",\"548\":\"5b55b4b34202d84e478f\",\"650\":\"55b0a27fe736ce512ff7\",\"731\":\"fc2222e8bcbd3a323b37\",\"832\":\"9eb91922ad7dfced24d1\",\"843\":\"82fd7f798c0dd9a6f67b\",\"926\":\"e632eeb611475b6922a9\"}[chunkId] + \".js\";\n};","// This function allow to reference all chunks\n__webpack_require__.miniCssF = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"\" + \"styles\" + \".\" + \"5b25a794d449e83a4778\" + \".css\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.p = \"/\";","__webpack_require__.b = document.baseURI || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t658: 0,\n\t532: 0\n};\n\n__webpack_require__.f.j = function(chunkId, promises) {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(!/^(532|658)$/.test(chunkId)) {\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise(function(resolve, reject) { installedChunkData = installedChunks[chunkId] = [resolve, reject]; });\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = function(event) {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t} else installedChunks[chunkId] = 0;\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkcode_cave\"] = self[\"webpackChunkcode_cave\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));"],"names":["deferred","leafPrototypes","getProto","inProgress","dataWebpackPrefix","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","module","__webpack_modules__","m","O","result","chunkIds","fn","priority","notFulfilled","Infinity","i","length","fulfilled","j","Object","keys","every","key","splice","r","n","getter","__esModule","d","a","getPrototypeOf","obj","__proto__","t","value","mode","this","then","ns","create","def","current","indexOf","getOwnPropertyNames","forEach","definition","o","defineProperty","enumerable","get","f","e","chunkId","Promise","all","reduce","promises","u","miniCssF","g","globalThis","Function","window","prop","prototype","hasOwnProperty","call","l","url","done","push","script","needAttach","scripts","document","getElementsByTagName","s","getAttribute","createElement","charset","timeout","nc","setAttribute","src","onScriptComplete","prev","event","onerror","onload","clearTimeout","doneFns","parentNode","removeChild","setTimeout","bind","type","target","head","appendChild","Symbol","toStringTag","p","b","baseURI","self","location","href","installedChunks","installedChunkData","test","promise","resolve","reject","error","Error","errorType","realSrc","message","name","request","webpackJsonpCallback","parentChunkLoadingFunction","data","moreModules","runtime","some","id","chunkLoadingGlobal"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"webpack-runtime-8eccf7df369f009ba9d4.js","mappings":"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","sources":["webpack://code-cave/webpack/runtime/chunk loaded","webpack://code-cave/webpack/runtime/create fake namespace object","webpack://code-cave/webpack/runtime/load script","webpack://code-cave/webpack/bootstrap","webpack://code-cave/webpack/runtime/compat get default export","webpack://code-cave/webpack/runtime/define property getters","webpack://code-cave/webpack/runtime/ensure chunk","webpack://code-cave/webpack/runtime/get javascript chunk filename","webpack://code-cave/webpack/runtime/get mini-css chunk filename","webpack://code-cave/webpack/runtime/global","webpack://code-cave/webpack/runtime/hasOwnProperty shorthand","webpack://code-cave/webpack/runtime/make namespace object","webpack://code-cave/webpack/runtime/publicPath","webpack://code-cave/webpack/runtime/jsonp chunk loading"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var getProto = Object.getPrototypeOf ? function(obj) { return Object.getPrototypeOf(obj); } : function(obj) { return obj.__proto__; };\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach(function(key) { def[key] = function() { return value[key]; }; });\n\t}\n\tdef['default'] = function() { return value; };\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"code-cave:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(url, done, key, chunkId) {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = function(prev, event) {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach(function(fn) { return fn(event); });\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = function(chunkId) {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"\" + ({\"147\":\"component---src-pages-templates-project-tsx\",\"149\":\"component---src-pages-templates-policies-tsx\",\"218\":\"component---src-pages-404-tsx\",\"252\":\"d30a71578427adb006614dd8857449316a352827\",\"354\":\"component---src-pages-templates-post-tsx\",\"374\":\"1470453bba0c0cc23f8aa20c3cefd756f6b7fd4b\",\"417\":\"component---src-pages-templates-services-tsx\",\"548\":\"component---src-pages-templates-workflow-tsx\",\"650\":\"component---src-pages-templates-projects-tsx\",\"832\":\"component---src-pages-templates-index-tsx\",\"926\":\"component---src-pages-templates-blog-tsx\"}[chunkId] || chunkId) + \"-\" + {\"147\":\"9b1b9adbc9274b4f8970\",\"149\":\"15f53bf827c36e52ae75\",\"218\":\"8854ec07bcd813a2d5d9\",\"252\":\"2d8abc9ca321acaca0df\",\"354\":\"f7d7682c4496902d891d\",\"374\":\"836ed7a6c9535bee39d1\",\"417\":\"5c395c45f908b7df0b61\",\"475\":\"3e46bce72021fe5f8d9d\",\"548\":\"5b55b4b34202d84e478f\",\"650\":\"55b0a27fe736ce512ff7\",\"731\":\"fc2222e8bcbd3a323b37\",\"832\":\"9eb91922ad7dfced24d1\",\"843\":\"82fd7f798c0dd9a6f67b\",\"926\":\"e632eeb611475b6922a9\"}[chunkId] + \".js\";\n};","// This function allow to reference all chunks\n__webpack_require__.miniCssF = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"\" + \"styles\" + \".\" + \"c06ccc800b70845881cc\" + \".css\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.p = \"/\";","__webpack_require__.b = document.baseURI || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t658: 0,\n\t532: 0\n};\n\n__webpack_require__.f.j = function(chunkId, promises) {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(!/^(532|658)$/.test(chunkId)) {\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise(function(resolve, reject) { installedChunkData = installedChunks[chunkId] = [resolve, reject]; });\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = function(event) {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t} else installedChunks[chunkId] = 0;\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkcode_cave\"] = self[\"webpackChunkcode_cave\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));"],"names":["deferred","leafPrototypes","getProto","inProgress","dataWebpackPrefix","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","module","__webpack_modules__","m","O","result","chunkIds","fn","priority","notFulfilled","Infinity","i","length","fulfilled","j","Object","keys","every","key","splice","r","n","getter","__esModule","d","a","getPrototypeOf","obj","__proto__","t","value","mode","this","then","ns","create","def","current","indexOf","getOwnPropertyNames","forEach","definition","o","defineProperty","enumerable","get","f","e","chunkId","Promise","all","reduce","promises","u","miniCssF","g","globalThis","Function","window","prop","prototype","hasOwnProperty","call","l","url","done","push","script","needAttach","scripts","document","getElementsByTagName","s","getAttribute","createElement","charset","timeout","nc","setAttribute","src","onScriptComplete","prev","event","onerror","onload","clearTimeout","doneFns","parentNode","removeChild","setTimeout","bind","type","target","head","appendChild","Symbol","toStringTag","p","b","baseURI","self","location","href","installedChunks","installedChunkData","test","promise","resolve","reject","error","Error","errorType","realSrc","message","name","request","webpackJsonpCallback","parentChunkLoadingFunction","data","moreModules","runtime","some","id","chunkLoadingGlobal"],"sourceRoot":""} \ No newline at end of file diff --git a/webpack.stats.json b/webpack.stats.json index 9394c252..2c3ee06c 100644 --- a/webpack.stats.json +++ b/webpack.stats.json @@ -1 +1 @@ -{"name":"build-javascript","namedChunkGroups":{"app":{"name":"app","assets":[{"name":"webpack-runtime-7fd23ed30c6a3828a012.js","size":4578},{"name":"styles.5b25a794d449e83a4778.css","size":49187},{"name":"framework-e4f3e98283dd6d5d8e77.js","size":140759},{"name":"app-fb4af62ff471c4bd5365.js","size":90723}],"filteredAssets":0,"assetsSize":285247,"filteredAuxiliaryAssets":17,"auxiliaryAssetsSize":1192483},"component---src-pages-404-tsx":{"name":"component---src-pages-404-tsx","assets":[{"name":"component---src-pages-404-tsx-8854ec07bcd813a2d5d9.js","size":762}],"filteredAssets":0,"assetsSize":762,"filteredAuxiliaryAssets":1,"auxiliaryAssetsSize":1887},"component---src-pages-templates-blog-tsx":{"name":"component---src-pages-templates-blog-tsx","assets":[{"name":"d30a71578427adb006614dd8857449316a352827-2d8abc9ca321acaca0df.js","size":10656},{"name":"component---src-pages-templates-blog-tsx-e632eeb611475b6922a9.js","size":9463}],"filteredAssets":0,"assetsSize":20119,"filteredAuxiliaryAssets":2,"auxiliaryAssetsSize":95370},"component---src-pages-templates-index-tsx":{"name":"component---src-pages-templates-index-tsx","assets":[{"name":"styles.5b25a794d449e83a4778.css","size":49187},{"name":"d30a71578427adb006614dd8857449316a352827-2d8abc9ca321acaca0df.js","size":10656},{"name":"1470453bba0c0cc23f8aa20c3cefd756f6b7fd4b-836ed7a6c9535bee39d1.js","size":18634},{"name":"component---src-pages-templates-index-tsx-9eb91922ad7dfced24d1.js","size":24740}],"filteredAssets":0,"assetsSize":103217,"filteredAuxiliaryAssets":17,"auxiliaryAssetsSize":730567},"component---src-pages-templates-policies-tsx":{"name":"component---src-pages-templates-policies-tsx","assets":[{"name":"component---src-pages-templates-policies-tsx-15f53bf827c36e52ae75.js","size":835}],"filteredAssets":0,"assetsSize":835,"filteredAuxiliaryAssets":1,"auxiliaryAssetsSize":2102},"component---src-pages-templates-post-tsx":{"name":"component---src-pages-templates-post-tsx","assets":[{"name":"d30a71578427adb006614dd8857449316a352827-2d8abc9ca321acaca0df.js","size":10656},{"name":"component---src-pages-templates-post-tsx-e7fee33879d8795210bf.js","size":6699}],"filteredAssets":0,"assetsSize":17355,"filteredAuxiliaryAssets":2,"auxiliaryAssetsSize":85984},"component---src-pages-templates-project-tsx":{"name":"component---src-pages-templates-project-tsx","assets":[{"name":"d30a71578427adb006614dd8857449316a352827-2d8abc9ca321acaca0df.js","size":10656},{"name":"1470453bba0c0cc23f8aa20c3cefd756f6b7fd4b-836ed7a6c9535bee39d1.js","size":18634},{"name":"component---src-pages-templates-project-tsx-9b1b9adbc9274b4f8970.js","size":6464}],"filteredAssets":0,"assetsSize":35754,"filteredAuxiliaryAssets":3,"auxiliaryAssetsSize":171261},"component---src-pages-templates-projects-tsx":{"name":"component---src-pages-templates-projects-tsx","assets":[{"name":"d30a71578427adb006614dd8857449316a352827-2d8abc9ca321acaca0df.js","size":10656},{"name":"component---src-pages-templates-projects-tsx-55b0a27fe736ce512ff7.js","size":3754}],"filteredAssets":0,"assetsSize":14410,"filteredAuxiliaryAssets":2,"auxiliaryAssetsSize":80374},"component---src-pages-templates-services-tsx":{"name":"component---src-pages-templates-services-tsx","assets":[{"name":"d30a71578427adb006614dd8857449316a352827-2d8abc9ca321acaca0df.js","size":10656},{"name":"component---src-pages-templates-services-tsx-5c395c45f908b7df0b61.js","size":16033}],"filteredAssets":0,"assetsSize":26689,"filteredAuxiliaryAssets":2,"auxiliaryAssetsSize":107900},"component---src-pages-templates-workflow-tsx":{"name":"component---src-pages-templates-workflow-tsx","assets":[{"name":"d30a71578427adb006614dd8857449316a352827-2d8abc9ca321acaca0df.js","size":10656},{"name":"component---src-pages-templates-workflow-tsx-5b55b4b34202d84e478f.js","size":17806}],"filteredAssets":0,"assetsSize":28462,"filteredAuxiliaryAssets":2,"auxiliaryAssetsSize":115683}},"assetsByChunkName":{"app":["webpack-runtime-7fd23ed30c6a3828a012.js","styles.5b25a794d449e83a4778.css","framework-e4f3e98283dd6d5d8e77.js","app-fb4af62ff471c4bd5365.js"],"component---src-pages-404-tsx":["component---src-pages-404-tsx-8854ec07bcd813a2d5d9.js"],"component---src-pages-templates-blog-tsx":["d30a71578427adb006614dd8857449316a352827-2d8abc9ca321acaca0df.js","component---src-pages-templates-blog-tsx-e632eeb611475b6922a9.js"],"component---src-pages-templates-index-tsx":["styles.5b25a794d449e83a4778.css","d30a71578427adb006614dd8857449316a352827-2d8abc9ca321acaca0df.js","1470453bba0c0cc23f8aa20c3cefd756f6b7fd4b-836ed7a6c9535bee39d1.js","component---src-pages-templates-index-tsx-9eb91922ad7dfced24d1.js"],"component---src-pages-templates-policies-tsx":["component---src-pages-templates-policies-tsx-15f53bf827c36e52ae75.js"],"component---src-pages-templates-post-tsx":["d30a71578427adb006614dd8857449316a352827-2d8abc9ca321acaca0df.js","component---src-pages-templates-post-tsx-e7fee33879d8795210bf.js"],"component---src-pages-templates-project-tsx":["d30a71578427adb006614dd8857449316a352827-2d8abc9ca321acaca0df.js","1470453bba0c0cc23f8aa20c3cefd756f6b7fd4b-836ed7a6c9535bee39d1.js","component---src-pages-templates-project-tsx-9b1b9adbc9274b4f8970.js"],"component---src-pages-templates-projects-tsx":["d30a71578427adb006614dd8857449316a352827-2d8abc9ca321acaca0df.js","component---src-pages-templates-projects-tsx-55b0a27fe736ce512ff7.js"],"component---src-pages-templates-services-tsx":["d30a71578427adb006614dd8857449316a352827-2d8abc9ca321acaca0df.js","component---src-pages-templates-services-tsx-5c395c45f908b7df0b61.js"],"component---src-pages-templates-workflow-tsx":["d30a71578427adb006614dd8857449316a352827-2d8abc9ca321acaca0df.js","component---src-pages-templates-workflow-tsx-5b55b4b34202d84e478f.js"]},"childAssetsByChunkName":{}} \ No newline at end of file +{"name":"build-javascript","namedChunkGroups":{"app":{"name":"app","assets":[{"name":"webpack-runtime-8eccf7df369f009ba9d4.js","size":4578},{"name":"styles.c06ccc800b70845881cc.css","size":49417},{"name":"framework-e4f3e98283dd6d5d8e77.js","size":140759},{"name":"app-fb4af62ff471c4bd5365.js","size":90723}],"filteredAssets":0,"assetsSize":285477,"filteredAuxiliaryAssets":17,"auxiliaryAssetsSize":1192483},"component---src-pages-404-tsx":{"name":"component---src-pages-404-tsx","assets":[{"name":"component---src-pages-404-tsx-8854ec07bcd813a2d5d9.js","size":762}],"filteredAssets":0,"assetsSize":762,"filteredAuxiliaryAssets":1,"auxiliaryAssetsSize":1887},"component---src-pages-templates-blog-tsx":{"name":"component---src-pages-templates-blog-tsx","assets":[{"name":"d30a71578427adb006614dd8857449316a352827-2d8abc9ca321acaca0df.js","size":10656},{"name":"component---src-pages-templates-blog-tsx-e632eeb611475b6922a9.js","size":9463}],"filteredAssets":0,"assetsSize":20119,"filteredAuxiliaryAssets":2,"auxiliaryAssetsSize":95370},"component---src-pages-templates-index-tsx":{"name":"component---src-pages-templates-index-tsx","assets":[{"name":"styles.c06ccc800b70845881cc.css","size":49417},{"name":"d30a71578427adb006614dd8857449316a352827-2d8abc9ca321acaca0df.js","size":10656},{"name":"1470453bba0c0cc23f8aa20c3cefd756f6b7fd4b-836ed7a6c9535bee39d1.js","size":18634},{"name":"component---src-pages-templates-index-tsx-9eb91922ad7dfced24d1.js","size":24740}],"filteredAssets":0,"assetsSize":103447,"filteredAuxiliaryAssets":17,"auxiliaryAssetsSize":730567},"component---src-pages-templates-policies-tsx":{"name":"component---src-pages-templates-policies-tsx","assets":[{"name":"component---src-pages-templates-policies-tsx-15f53bf827c36e52ae75.js","size":835}],"filteredAssets":0,"assetsSize":835,"filteredAuxiliaryAssets":1,"auxiliaryAssetsSize":2102},"component---src-pages-templates-post-tsx":{"name":"component---src-pages-templates-post-tsx","assets":[{"name":"d30a71578427adb006614dd8857449316a352827-2d8abc9ca321acaca0df.js","size":10656},{"name":"component---src-pages-templates-post-tsx-f7d7682c4496902d891d.js","size":6709}],"filteredAssets":0,"assetsSize":17365,"filteredAuxiliaryAssets":2,"auxiliaryAssetsSize":85994},"component---src-pages-templates-project-tsx":{"name":"component---src-pages-templates-project-tsx","assets":[{"name":"d30a71578427adb006614dd8857449316a352827-2d8abc9ca321acaca0df.js","size":10656},{"name":"1470453bba0c0cc23f8aa20c3cefd756f6b7fd4b-836ed7a6c9535bee39d1.js","size":18634},{"name":"component---src-pages-templates-project-tsx-9b1b9adbc9274b4f8970.js","size":6464}],"filteredAssets":0,"assetsSize":35754,"filteredAuxiliaryAssets":3,"auxiliaryAssetsSize":171261},"component---src-pages-templates-projects-tsx":{"name":"component---src-pages-templates-projects-tsx","assets":[{"name":"d30a71578427adb006614dd8857449316a352827-2d8abc9ca321acaca0df.js","size":10656},{"name":"component---src-pages-templates-projects-tsx-55b0a27fe736ce512ff7.js","size":3754}],"filteredAssets":0,"assetsSize":14410,"filteredAuxiliaryAssets":2,"auxiliaryAssetsSize":80374},"component---src-pages-templates-services-tsx":{"name":"component---src-pages-templates-services-tsx","assets":[{"name":"d30a71578427adb006614dd8857449316a352827-2d8abc9ca321acaca0df.js","size":10656},{"name":"component---src-pages-templates-services-tsx-5c395c45f908b7df0b61.js","size":16033}],"filteredAssets":0,"assetsSize":26689,"filteredAuxiliaryAssets":2,"auxiliaryAssetsSize":107900},"component---src-pages-templates-workflow-tsx":{"name":"component---src-pages-templates-workflow-tsx","assets":[{"name":"d30a71578427adb006614dd8857449316a352827-2d8abc9ca321acaca0df.js","size":10656},{"name":"component---src-pages-templates-workflow-tsx-5b55b4b34202d84e478f.js","size":17806}],"filteredAssets":0,"assetsSize":28462,"filteredAuxiliaryAssets":2,"auxiliaryAssetsSize":115683}},"assetsByChunkName":{"app":["webpack-runtime-8eccf7df369f009ba9d4.js","styles.c06ccc800b70845881cc.css","framework-e4f3e98283dd6d5d8e77.js","app-fb4af62ff471c4bd5365.js"],"component---src-pages-404-tsx":["component---src-pages-404-tsx-8854ec07bcd813a2d5d9.js"],"component---src-pages-templates-blog-tsx":["d30a71578427adb006614dd8857449316a352827-2d8abc9ca321acaca0df.js","component---src-pages-templates-blog-tsx-e632eeb611475b6922a9.js"],"component---src-pages-templates-index-tsx":["styles.c06ccc800b70845881cc.css","d30a71578427adb006614dd8857449316a352827-2d8abc9ca321acaca0df.js","1470453bba0c0cc23f8aa20c3cefd756f6b7fd4b-836ed7a6c9535bee39d1.js","component---src-pages-templates-index-tsx-9eb91922ad7dfced24d1.js"],"component---src-pages-templates-policies-tsx":["component---src-pages-templates-policies-tsx-15f53bf827c36e52ae75.js"],"component---src-pages-templates-post-tsx":["d30a71578427adb006614dd8857449316a352827-2d8abc9ca321acaca0df.js","component---src-pages-templates-post-tsx-f7d7682c4496902d891d.js"],"component---src-pages-templates-project-tsx":["d30a71578427adb006614dd8857449316a352827-2d8abc9ca321acaca0df.js","1470453bba0c0cc23f8aa20c3cefd756f6b7fd4b-836ed7a6c9535bee39d1.js","component---src-pages-templates-project-tsx-9b1b9adbc9274b4f8970.js"],"component---src-pages-templates-projects-tsx":["d30a71578427adb006614dd8857449316a352827-2d8abc9ca321acaca0df.js","component---src-pages-templates-projects-tsx-55b0a27fe736ce512ff7.js"],"component---src-pages-templates-services-tsx":["d30a71578427adb006614dd8857449316a352827-2d8abc9ca321acaca0df.js","component---src-pages-templates-services-tsx-5c395c45f908b7df0b61.js"],"component---src-pages-templates-workflow-tsx":["d30a71578427adb006614dd8857449316a352827-2d8abc9ca321acaca0df.js","component---src-pages-templates-workflow-tsx-5b55b4b34202d84e478f.js"]},"childAssetsByChunkName":{}} \ No newline at end of file diff --git a/workflow/index.html b/workflow/index.html index 7b54b0c4..8338a48e 100644 --- a/workflow/index.html +++ b/workflow/index.html @@ -1,6 +1,6 @@ - - \ No newline at end of file + \ No newline at end of file