Step by Step Skeletal Animation in C++ and OpenGL, Using COLLADA PART 1

Level: Beginner to Intermediate

Introduction: Hi I am waZim and welcome to my first tutorial(s) on Skeletal Animation. This series of tutorials consists of two parts.

1)     Reading and Understanding COLLADA. (high level overview of COLLADA documents)

2)     Actual Implementations in C++ using OpenGL, of what we learn in Part 1.

These two parts are further broken down into sub categories or parts which will be explained as we progress through the tutorials.

Who should read these tutorials?

This tutorial is written for those programmers (Not artists) who want to implement Skeletal Animations in General and Skeletal Animations using COLLADA in Specific, Using C++ and OpenGL, in their (Game) Engines. It is also helpful to programmers who want to learn how to load static 3D COLLADA models in their engines;

What we will and will not cover?

In this set of tutorials I will try to explain step by step how to read Geometry, Skeleton and Animation Data from COLLADA documents and how to implement and animate your characters using skeletal animations, in C++ and OpenGL. We will not be covering EVERY aspect of COLLADA; rather we will take some assumptions which will help us to understand the COLLADA document format easily.

We will also not discuss things like shaders and FX using COLLADA.

What you need to know, to get the Most out of these tutorials?

Any-one who wants to get the most benefit out of these tutorials should have solid knowledge of programming in general and C++ programming in particular. Advanced OpenGL programming is not required although it is a plus. You should know what a vector is and what a texture coordinate is, how geometry and animation is represented, what an XML format is and so on. For the rest, I hope you will learn everything you need here.

What you need to have, to learn and read through these tutorials?

You need a C++ compiler with OpenGL Support and working drivers for OpenGL.

Some COLLADA example documents. Which you can find on www.COLLADA.org , find model bank, or in downloads section of this website (www.wazim.com).

A good Text Editor like Notepad++

Background and Motivation:

Over the years when I first started graphics programming, I was already tired of writing geometry by hand and drawing everything vertex by vertex :). Then the time came when I saw some simple demos over the internet, reading Geometry data from ASCII files in OpenGL, like .OBJ file format etc.. After some time, I wanted to animate the models so I found MD2 Demos. When I started creating my own MD2 files, it was really hard to find a robust importer for MD2 files for my own engine. In the end, I decided to forget about all those formats and read Autodesk Maya (.ma) or Autodesk Studio Max (.max) files. But reading Geometry and animation data from those two files are not recommended by the authors of those two Authoring softwares. I don’t know much about Maya .mb or .ma files but I love Studio Max and .max files and yet they are unfortunately poorly documented. And even if you start to write an exporter for any of these files it’s really hard to port your models from Maya to Max or vice versa. There is always something missing when you import those files into other software.

The solution that I found was COLLADA. COLLADA documents are cross platform because they are stored in UTF-8 format using XML schema. I think you already know something about COLLADA that is why you are here! So let’s not waste any time and jump straight to the implementation. If you want to read more about COLLADA documents then go visit (www.COLLADA.org) and keep reading the COLLADA wiki and COLLADA forums.

So after I have found COLLADA the solution to my problems I have been working with COLLADA. There are many implementations of COLLADA which are too generic, for example the first thing I saw was the COLLADA DOM which is available on COLLADA.org. And you can write your own code on top of DOM to extract all the information from COLLADA document which is loaded in DOM and export it to your Custom Format. This is the easy way to go but still you need to understand the COLLADA format and then DOM has its own problems. You might find it very hard to get what you really need and what you don’t need. What I found annoying with DOM was that it can read Texture Coordinates with (s,t) two components while can’t read (s,t,p) type of Texture coordinates which are default to Studio Max COLLADA Exporter. So at the end I decided to write my own exporter and it’s really not that hard as it seems.

When I started reading about COLLADA I was unable to find a step by step tutorial, so the purpose of this tutorial is to give you the COLLADA document format in easy to learn chunks and C++ code to implement, with step by step explanation.

Part 1:

Reading and Understanding COLLADA documents

As we have discussed in the introduction part, this tutorial is split in to two parts, first one general introduction to COLLADA documents which is irrespective of any programming language. So if you want to skip this part and directly jump to the implementation part, it is quite possible that you will find it hard to understand what is going on. So it’s highly recommended, for those who know nothing or very little about COLLADA documents, to read this part before moving to the next part.

Enough Ranting :), let’s start working.

COLLADA documents

Before we dig into COLLADA documents I would like you to download the example file which we will be using through out the tutorial. It’s available in the COLLADA Model Bank and is also shipped with COLLADA DOM. It’s called “astroBoy_walk.dae” if you can’t find this file anywhere then its available in downloads section of this tutorial’s website, and you can find it there.

Like we discussed earlier (in case you read the intro part) COLLADA documents are stored in XML format. If you open astroBoy_walk.dae, which I will call example file from now on, in your favorite text editor, you can see a root node called “COLLADA” and if your text editor supports expanding or collapsing XML nodes (if you are using Notepad++ you can set the language type to XML from the “language” menu to get XML Editing enabled) then you can click on the (-) sign in front of <COLLADA> tag to Collapse it to one line, there you will see that the whole file is Collapsed to one line and thatÔÇÖs all the COLLADA document is about.

Figure 1: COLLADA document in short

Within this <COLLADA> node which is the root of this .dae or .xml file, you will find many other libraries which are used for storing different types of information like <library_geometries> is used to store geometry data and <library_lights> is used to store Lights in the scene. Refer to figure 1. See it’s not rocket science ­čÖé and then within those libraries you will find the actual data. For example a geometry library will have <geometry> nodes and a lights library can have <light> nodes, which means those libraries are used to store more then one lights or geometries in your scene. Now let’s analyze all of those libraries one by one by increasing importance to the tutorial and our COLLADA exporter, in their corresponding sections.

First of all let’s make things easier for us. Just like I said in the beginning we will not be discussing COLLADA documents from all aspects; rather we will be taking some assumptions, to remove complexities.

List of Assumptions:

1)     Although COLLADA documents exported from Max or Maya Should be the same but in some cases they are different. We will only talk about COLLADA document exported from Studio Max, which of course does not mean that this tutorial might not help those who work in Maya. Because I am still positive that COLLADA documents exported from Maya should be the same, if we export them with backed matrices and triangulate options checked, from the COLLADA Exporter Options dialog. But I have never worked with Maya and don’t know where my exporter might fail.

2)     The COLLADA document must have at least and at most a mesh, which means, anything in the asset’s Max file, should be attached. So we must not have more then one <mesh> in the <library_geometries> in the COLLADA document. If we are able to read one <mesh> then we can read a 10000 too.

3)     Geometry in COLLADA should be triangulated, since thatÔÇÖs the better (If not best) option, we can provide OpenGL, so we let the triangulation work done by Max.

4)     Later in the implementations part we will assume our Model which was exported to COLLADA document has only One Texture file.

5)     Animations in COLLADA must have at least or at most one Skeleton, with only one Root Bone (Typical). And I think thatÔÇÖs why we are here, to implement skeletal animation.

6)     Animation exported to COLLADA must be baked in matrices, which essentially in some cases makes 1 channel of animation and in others 16 channels of animation (Now what is channel? It should be explained later).

7)     Animations can only be valid if the channel targets the “Transform” of the targeted entity, just to keep things clear and easy. When you will bake matrices, then you will have this automatically, so don’t need to worry about that.

8)     Animations can’t have nested animations.

9)     Only Skeletal Animation is supported (No baked animation yet).

10)  Every bone in the hierarchy must be attached as effecter on the skin. In other words, it must be added to the skin.

Keeping those assumptions in mind all the times, let’s start explaining different libraries in their related sections. You might also find it easy and handy to switch to Implementation part for each section immediately, when you read that section, before you finish reading the first part completely. The link to the implementation of each section is given at the end of that section.

Reading Geometry Data from COLLADA document

<library_geometries>

This is by far the most important library of all of the COLLADA libraries; if you have a character to animate we need its geometric data, which is provided in <library_geometries>.

This library contains <geometry> type nodes which contain separate geometries in the scene, keep in mind COLLADA is not just an asset file format rather you can put a complete scene and many scenes in them. Like we assumed we are only concerned with one <geometry> node which will have one <mesh> node. So if so far you have found that node lets analyze it.

<mesh>

Mesh is the node where we will find our geometry data. If you try to analyze the node you will see further at least 1 or 2 <source> nodes, which, depending on its type, gives information about Vertices, Normals and Texture Coordinates etc. In the example file (if you have downloaded from COLLADA.org, it will not have backed animation in it, so you have to import it in Max and then export it back with Backed Matrices and “triangulate” checkbox checked as shown in figure 2), you will find 3 <source> nodes and we are lucky that each source node is defined in the same way in COLLADA.

Figure 2: Export Options from COLLADAMax

<souce>

Remember all these XML nodes discussed so far have an ID associated with them which is used for locating the Node in COLLADA document when referred from any place. And Source Nodes are not any exception to that. Now <source> can have many children nodes but the most important ones are <float_array> or <NAME_array> and <technique_common>.

As the names suggests <float_array> contains floats which can be used for different purposes which are described by <technique_common> of that source and the difference between <float_array> and <NAME_array> is that, the former contains floats and the later contains strings.

Now we use the <technique_common>’s <accessor> child node to specify what kind of data is in those arrays <float_array>, <NAME_array> or any other type of many types of arrays. <accessor> node has a “source” attribute which says “What kind of “array” are we talking about?”. And a “count” attribute says how many elements we have in the “array”. The “stride” attribute says after how many values the next element starts.

I hope I am not talking Chinese but let’s explain it with a figure and example COLLADA source.

<source id="vertices_source" name="Vertices">

<float_array id="values" count="6"> 0.3 0.5 0.7 0.2 0.4 0.6 </float_array>

<technique_common>

<accessor source="#values" count="2" stride="3">

<param name="X" type="float"/>

<param name="Y" type="float"/>

<param name="Z" type="float"/>

</accessor>

</technique_common>

</source>
Figure 3: Structure of a source

As you can see in figure 3, there are float array’s (count=”6″) values which are 3 (x, y, z) float components of <accessor>’s (count=”2″) number of vertices. And when we have 3 <param> child nodes in <accessor> then we have 3 (x, y, z) components in each Vertex (3D vertex) (it can also be 3 Components of Normal, or 3 Components of Texture Coordinates). This information is very important since I can’t find it in COLLADA Specifications and it took me a lot of time to understand this concept (may be I am dumb) ­čÖü So if you don’t understand, please read again.

In short, this source says, “I have 2 vertices with 3 components each, which are saved in <floats_array> as 6 float values”. Components are called “X”, “Y” and “Z”. And they are float type values. If we had a <source> which saves texture coordinates, then those components would be “S”, “T” and “P”.

So thatÔÇÖs all a source is about. Now as we discussed before there are 3 <source> nodes in the example COLLADA document. And as you might have guessed already, the other two sources are for Normals and Texture Coordinates, if you have exported your Model with other attributes then you will have more <source> nodes, like bitangents and tangets etc.

Now when we are able to decode <source>s, we still can’t just decide on the order of those sources which one is Vertices and which one is Normals etc. we have to read one other child of <mesh> which is called <vertices> to find the vertices source, although I really don’t understand the reason why they do this in COLLADA but for the sake of completeness you have to read this Node it has at least one Child node called <input> with a semantic attribute of “POSITIONS” value, which references the vertices <source> with another source name/id. And then you refer to this ID when ever you need the vertices source. If you don’t understand these sections then skip to the next section and you hopefully will understand.

<triangles>

Now as we have assumed we are only considering COLLADA documents triangulated so you will only see <triangles> types nodes as children of <mesh> otherwise you might see <polylist> etc nodes, which we are least concerned with.

This <triangles> node tells all the information we need to make a triangle out of those 3 sources (in this case) which we read earlier. A <triangles> node says how many triangles we have in this <triangles> node with a “count” attribute and also lists “material” attribute which is used to find the material from the <library_material> and that material is used to render the list of triangles from this <triangles> node. So you might see many triangle groups in one Mesh, which are separated by Materials. So we have to read all the <triangles> nodes.

To decode <triangles> nodes we have to read its children in which <input> and <p> are the most important. The number of <input> nodes says the number of attributes per vertex. And <p> has the indices of those attributes in their corresponding <source> nodes. Let’s see an example.

<mesh>

<source id="position"/>

<source id="normal"/>

<source id="textureCoords"/>

 

<vertices id="verts">

<input semantic="POSITION" source="#position"/>

</vertices>

<triangles count="2" material="Bricks">

<input semantic="VERTEX" source="#verts" offset="0"/>

<input semantic="NORMAL" source="#normal" offset="1"/>

<input semantic="TEXCOORD" source="#textureCoords" offset="2" set="1" />

<p>

0 0 1 3 2 1

0 0 2 1 3 2

</p>

</triangles>

</mesh>

Figure 4: Structure of a Triangle

As you can see from the above example <vertices> node is renaming the “position” source with “verts” and then defining the triangles vertices source with “verts” name. So this is why we need to read <vertices> node to find the real position <source> from the <source>s.

If you read the Children of <triangles> node you can see that it has 3 <input> nodes with values of “VERTEX” “NORMAL” and “TEXCOORD” for its semantic attribute. This essentially means that our triangles have 3 attributes per vertex, first Vertex Position, second Vertex Normal and third Vertex Texture Coordinate.

And how we know which one is first in the list of indices in <p>? We can see that

<input> node with semantic = “VERTEX” has offset = “0”,

<input> node with semantic = “NORMAL” has offset = “1” and

<input> node with semantic = “TEXCOORD” has offset = “2”.

So when ever we will read values from <p> for each triangle’s each vertex,

The first one will be the Index of “VERTEX” Position from the “positions” <source>,

The second one will be the index of the “NORMAL” from the “normal” <source> and

The third one is the index of “TEXCOORD” from the “textureCoords” <source>.

Now one thing I would like to make clear here is, that all these values we read from <p> are “indices” not actual values. And all the data for all the triangles are saved as indexed data to save space in case of repetitions of attributes data. To find the real data we have to refer to the corresponding <source>s and pick the corresponding data at that particular index.

Making Triangles is very easy now. All you have to do is keep on reading 3 * (Number of Input Nodes in <triangles>) values from <p> and read the corresponding attribute values from the corresponding <source>s. If we have only one attribute per vertex for any number of triangles then we will have the following <triangles> Node, with only one <input> child. In this case all you have to do to read the triangle is to keep on reading 3 values from <p> and read the corresponding vertex values from the corresponding “verts” source.

<triangles count="2" material="Bricks">

<input semantic="VERTEX" source="#verts" offset="0"/>

<p>

0 3 2

0 2 1

</p>

</triangles>

One thing we still need to know is the “material” attribute of a <triangles> node. This attribute references the material used from the “library_materials> which will we discuss later in the tutorial.

ThatÔÇÖs all for the geometry data. If you understand this part correctly I hope you will have no problems going on from here onwards. Other wise go back and read again until you understand completely. Now if you directly want to jump to the implementation part (part 2) of the tutorial, you should be able to read and display static 3D objects in your engine. And if you want to render them with Materials and texture maps as well as animate them, you will have to keep on reading this part of the tutorial completely.

Click here to go to: Implementation section in Part 2 for this section of Part 1
Reading Texture filename from COLLADA document

As you know we took some assumptions in the beginning, one of which was only one texture file can be used in the COLLADA document. This will make finding the file name very easy.

All we have to do is to read the <library_images> and read the “id” attribute of the “Only” <image> node in it. Usually that will be the file name of the texture file used in COLLADA. But it might not be correct file name, and COLLADA might create that ID different then the file name. So, to correctly read the file name we must read the <init_from> child node of <image> node, which gives the whole path, with file name. For our export purposes I am only interested in the file name, not the whole path, so I will tokenize the full path and save the file name only.

Click here to go to: Implementation section in Part 2 for this section of Part 1
Reading Materials from COLLADA document

We discussed in the section “Reading Geometry Data from COLLADA document” that each triangle group is separated by a “material” and the Material ID is the value of the “material” attribute in <triangles> node. Now to find those materials with those IDs we have to read <library_materials>. In <library_materials> you will find <material> nodes with those IDs which were referenced from <triangles> nodes. But unfortunately those <material> nodes have only one type of child named <instance_effect> which has one attributes called “url”. All what its saying is that this specific <material> node is referring to an effect from the <library_effects>, which in turn defines the material completely.

So we take the value of this “url” attribute for this specific <material> and find it in <library_effects>, now unfortunately this library <library_effects> is the most complicated library of COLLADA as much as I know. It can get very complicated when shaders and what not is included in the COLLADA document. But since I promised to keep things clear and easy, we will only read the data that we desperately need for defining a material.

Once we have found the <effect> node with id of the value of the “url” attribute for any material, we have to find either <phong> or <blin> node in <profile_COMMON> child node of the <effects> node. <phong> or <blin> are usually inside <technique> child node of <profile_COMMON>. Once we have found either <phong> or <blin> keep looking for all the parameters of the Material we are looking for, like “ambient” “diffuse” “specular” “emission” “shininess” and “transparency” etc. what ever you need for the material to look good. Usually “diffuse” “shininess” and “transparency” is enough to create a good looking material.

How can we read the data from those nodes is very easy? Usually ambient, emission, diffuse and specular nodes has 4 float values, inside a <color> child node, which corresponds to “RGBA” components of that particular material’s property, while reflectivity and transparency etc have 1 float value.

<ambient>

<color>1.0 1.0 1.0 1.0</color>

</ambient>

 

<transparency>

<float>0.5</float>

</transparency>

If we have placed a texture map on the diffuse color of the material then <diffuse> will not have a <color> child, rather that texture image. But for the sake of ease we will not worry about this and assume the texture map is always applied on the <diffuse> component of the material, which means we will not be reading <diffuse> values from COLLADA. But we will be using a default value for diffuse inside our OpenGL implementation.

That’s all what we need for any static geometry. So if you are only interested in reading Static geometry from COLLADA you can stop reading this part and jump to the implementation. Other wise keep on reading for extracting animation data from COLLADA documents.

Click here to go to: Implementation section in Part 2 for this section of Part 1
Reading Skeleton from COLLADA document

We assumed that we will only read COLLADA documents with skeletal animations, and not those with backed animations, so we have to read the skeleton from the COLLADA document. By skeleton, I mean reading the Joints (Bones) information. We also have to read the hierarchy of the Joints. This will tell us, who are the child of whom! And who is the parent of a joint etc. In the following figure all these terminologies are explained. Remember that Bones and Joints are One and the same thing, they are just convenience names, and the data that we read from COLLADA is actually a Joint, a Bone is an imaginary line connecting two Joints.

Figure 5: Skeleton Terminologies

In the following figure you can see the skeleton of our example file and the Skin attached to it.

Figure 6: Complete Character in one pose of animation

The red circles on the left in figure 5 are the joints we read from COLLADA and the lines connecting those circles are the imaginary bones, which are used to animate the skin. On the right you can see the skin attached to the skeleton in another frame.

You might remember we took some assumptions, one of which was that, all the joints are added to the skin, which will make your <library_visual_scenes> very simple to read. All you have to do is find the root Joint (bone) <node> of the skeleton in the visual scene and then read the whole tree of joints. One of the disadvantages with this is that you will have a lot of joints considered affecting the skin, but in real they will not have any effect on the skin. And if you don’t add all the bones to the skin, then you will see <node>s of type = “JOINT” and type =”NODE” mixed in the hierarchy. But if you add every bone to skin you will have full tree of type=”JOINT”s only. This is also the default behavior for many engine exporters. When you have <node>s with type=”JOINT” and type=”NODE” mixed in the hierarchy then you have to read <instance_controller> from <library_visual_scenes> and then read <skeleton> each time you have to read a joint. Those <node>s which are not of type=”JOINT” are still Joints but they are not effectors, which means they are not effecting the skin. And thatÔÇÖs why we assumed everything must be attached to the skin, to keep things easy and simple.

To read the hierarchy of the bones, you need to have a data structure which can hold a number of children and a parent of its own kind. (This will get clear in the implementation part). You might also need to save the “SID” attribute of <node>s. Once we have the data structure setup, we will find the root and start reading its children and then their children and so on (recursively) and keep saving them in the data structure. At the end of the whole read process your whole data structure should be able to answer questions like, which joint is the child of whom? And who is the parent of a joint.

Now how can we find the root joint of the skeleton? Since we know we only have one model in the COLLADA document so we don’t have to read the <scene> node to find where the scene is instanced from. We directly go to <library_visual_scenes> and for all the direct (immediate) children of the only <visual_scene> we have to find the <node> who has a children of type <instance_controller>, read the <skeleton> child of this <instance_controller> and that will give you the ID of the root node. Since we have added all the bones to the skin, we will only have one <skeleton> child of <instance_controller>. Now this node is our root of the skeleton and everything connected to this <node> is part of the skeleton.

If you see the structure of this <node> in COLLADA document you will see most of the nodes have <matrix> as the first child. And this <matrix> contains 16 float values, which makes the Joint Matrix of the bone. This is also called the local bone transformation matrix. When we connect all the joints we have to multiply the World Matrix of the parent to the child’s Joint Matrix and save it as world bone transformation matrix for the child. For the root Joint, who doesn’t have a parent, the Joint Matrix becomes the World transformation matrix.

By now you should be able to read the skeleton and derive the bind pose of the skeleton from the Joint matrices you read for each <node>. In the next section we read the skinning information which connects this skeleton with the skin.

Click here to go to: Implementation section in Part 2 for this section of Part 1
Reading Skinning information from COLLADA document

So far we have read the geometry (vertices attributes information, materials, texture filename) as well as skeleton of the model. What we need to know now is how this skeleton is connected to the skin (Geometry). We have read many Joints in the skeleton. But we still don’t know which Joint influence which vertex. Some of the joints might not even influence any vertex at all. But if you remember we took an assumption that all the Joints must be added to the skin. In that case every joint must be influencing the skin theoretically.

To properly connect the skin (geometry) to the skeleton we need skinning information, and this section will try to help you understand, where we can find skinning information in COLLADA?

There is one other thing I would like to explain before we go further. If we have a character who’s each vertex is connected to only one Joint. When ever that Joint moves the vertex connected to it must also move. And you will see very rigid animation. But this is not how things work. Almost every vertex is connected to more then one Joint. And we specify the influence of each joint on that vertex with the help of vertex weights. Each joint influences that particular vertex some percentage of the total influence which totals to 1. So vertex weights are very important part of the skinning information.

<library_controllers>

<library_controllers> contains all the influences (joints) and their connectivity through vertex weights for the whole model. According to our assumptions we only have one mesh and one skeleton. So we will have only one <controller> node in the list of children of <library_controllers>. Once we have found the one and only <controller> node, we have to find its child node <skin>. In the <skin> node, find the <source> whose attribute’s “name”s value is “JOINT” in the <param> child node of the <accessor> child of the <technique_common>, (I will not explain all this again since we have already decoded <source> nodes when we were reading Geometry data) and the <NAME_array> will give you the Names of all the joints in the skeleton. Now you know that you can find the number of bones used from the “count” attribute of the <NAME_array> node in this source. An example <source> is given as follows.

<source id="boyShape-skin-skin-joints">

<NAME_array id="skin-joints-array" count="5">Bone1 Bone2 Bone3 Bone4 Bone5<NAME_array />

<technique_common>

<acessor source="#skin-joints-array" count="5" stride="1">

                        <param name="JOINT" type="Name" />

</acessor>

</technique_common>

</source>

And if you go back and see your skeleton <node>s from <library_visual_scene>, you will see that all these names of Joints you read from <NAME_array> are actually the SID’s of these <node>s.

To properly read the skinning data, we first need to read the Bind shape matrix of the skin to the skeleton, which is usually the first child of <skin> node, if it’s not the first child we will iterate through all the children and find and save it. And then we start reading from the node called <vertex_weights> who’s “count” attribute’s value gives the number of weights, as far as I know this count must be equal to number of vertices in the model which we read earlier when we were reading Geometry data because we have to define the vertex weights for each and every vertex at least and at most once.

If you see the structure of the <vertex_weights> node you will see at least 2 <input> nodes, one with attribute semantic=”JOINT” and second with semantic=”WEIGHT”, One <vcount> node and one <v> node.

When we have to read the weights for each vertex we iterate <vertex_weight>’s attribute “count” number of times into the <vcount> node values. And each value from the <vcount> is the number of Joints affecting that particular vertex, on which we are currently iterating. So we iterate nested for that specific value in the <vcount> (number of joints time) and read pairs of indices from <v> (Here I assume we have only two <input> nodes in <vertex_weight>).

The first one index the “JOINT” name in the “JOINT” <source>’s <NAME_array> (Here I assume that the value of “offset” attribute of the <input> who’s semantic=”JOINT” is “0”), we mentioned how to find this source earlier as well, but here you can get the ID of this source from the “source” attribute of the <input> child of the <vertex_weight> node with semantic=”JOINT”.

And the second one index the weight value from the <source> who’s ID you can get from the “source” attribute of the <input> child of the <vertex_weight> node with semantic=”WEIGHT” (Here I assume that the value of “offset” attribute of the <input> who’s semantic=”WEIGHT” is “1”).

<vertex_weights count="4">

<input semantic="JOINT" source="#joints" offset="0"/>

<input semantic="WEIGHT" source="#weights" offset="1"/>

<vcount>3 2 2 3</vcount>

<v>

1 0 0 1 1 2

1 3 1 4

1 3 2 4

1 0 3 1 2 2

</v>

</vertex_weights>

In this example you can see that this <vertex_weight> node is defining weights (influences) for 4 vertices, first vertex has 3 influences, First vertex’s first influence’s joint index is 1 which is the index from the JOINTS <source>s <NAME_array> values. And its weight index in the <float_array> of the <source> of weights is 0.

There is one other very important child of <skin> node which is called <joints> and it usually have two <input> nodes, the first one with attribute semantic=”JOINT” references the <source> node with Joint names, through the “source” attribute. And the second <input> with semantic=”INV_BIND_MATRIX” references the source with inverse bind matrices for each Joint through the attribute “source”. The source with inverse bind matrices contains (Joints_count * 16) values which makes Joints_count inverse bind matrices. These inverse bind matrices are needed for skinning. And will be clear when we read the implementation part.

Once we have completely read the <controller> node we should have one Bind shape matrix, a number of Joints and their Inverse bind matrices, and we have read their Joint matrices from the <visual_scene> earlier. Each vertex must be influenced by one or more then one bone (Remember this is contrary to Each Joint must be influencing at least one or more Vertex, which is not true, since their might be Joints, influencing no vertices). And we must have their weights accordingly.

Now if you have come this far, you should be able to read the geometry data, as well as the skeleton and skinning data from COLLADA documents. And you should be able to draw the model in raw triangles, as well as draw the skeleton. Although I haven’t discussed how you can accumulate the world matrices for each joint and then draw in world coordinates for debugging purposes but I think I gave a hint that we have to multiply parent joint’s world matrix with current joint’s Joint matrix and save the result in current joint’s world matrix. We have to start this process from the root bone. So that we don’t have dirty world matrices from parents, and the root Joint’s world matrix becomes the Joint matrix, since root don’t have any parent. If you are also reading the COLLADA specification version 1.5 you can find the skinning equation so you should also be able to put the model in bind shape. How can we animate this model is still not covered and will be covered in the following sections.

Click here to go to: Implementation section in Part 2 for this section of Part 1
Reading Animation data from COLLADA document

So far we are able to read every thing related to the static pose of the character, the only thing we still have to understand and read is the animation data part. Animation is not very strong in COLLADA and is still in its infancy, as time passes and COLLADA gets mature this will get better. But for our purposes we have a lot to worry about :).

<library_animations>

In this library we have all the animations data saved. For each joint animated you will see an <animation> node which further have the animation data for that specific Joint. Remember that an <animation> channel replaces the transform of the target on which it applies, which in this case will be joints.

You will see three types of children nodes in <animation>, first one as usual will be <source>s of data, second one is called <sampler> and the third one is <channel>. You need <sampler> and <channel> nodes to define the target on which the animation data is applied.

From <channel> node you pick the target which gives you the ID of the Object on which the Animation data will be applied. And you also get the Sampler ID from where you will pick the sources from which you will pick the animation Data.

Remember the example I am presenting here is a case which will never occur in our example COLLADA documents, because of our assumption of backing matrices. But this is an easy example to understand.

Example:

<source id="astroBoy-input">

<float_array id="astroBoy-input-array" count="2">0 1.16667</float_array>

< technique_common>

<accessor source="#astroBoy-input-array" count="2" stride="1">

<param name="TIME" type="float"/>

</accessor>

</technique_common >

</source>

<source id="astroBoy-output">

<float_array id="astroBoy-output-array" count="2">2.2 3.5</float_array>

<technique_common>

<accessor source="#astroBoy-output-array" count="2" stride="1">

<param name="TRANSFORM" type="float"/>

</accessor>

</technique_common>

</source>

<source id="astroBoy-interpolations">

<NAME_array id="astroBoy-interpolations-array" count="2">LINEAR LINEAR</NAME_array>

<technique_common>

< accessor source="#astroBoy-interpolations-array" count="2" stride="1">

<param name="INTERPOLATION" type="float"/>

</accessor >

</technique_common>

</source>

<sampler id="astroBoy_Skeleton-sampler">

<input semantic="INPUT" source="#astroBoy-input"/>

<input semantic="OUTPUT" source="#astroBoy-output"/>

<input semantic="INTERPOLATION" source="#astroBoy-interpolations"/>

</sampler>

<channel source="#astroSkeleton-sampler" target="astroBoy_Skeleton/trans.X"/
 

Now Lets read from the Bottom <channel> node.

This says that there is one Entity (in our case will be Joint) called “astroBoy_Skeleton” in the scene who’s “X translation values” is being animated by the sampler “astroSkeleton-sampler”.

So we need to know how “astroSkeleton-sampler” animated that “X translation value”, we read <sampler> which says.

There are three types of inputs you must read to read the animation data.

First <intput> node is: INPUT

Second <intput> node is: OUTPUT

Third <intput> node is: INTERPOLATION

When we start reading the <input>s from the <sampler>,

The “input” with attribute semantic = “INPUT” gives you the input <source> for the animation

The “input” with attribute semantic = “OUTPUT” gives you the output <source> for the animation

The “input” with attribute semantic = “INTERPOLATON” gives you the interpolation <source> for the animation

Now when we go and read those <source>s, we see that the source who was referred to semantic = “INPUT” by the sampler has name=”TIME” in <param> child of <accessor> child of the <technique_common> child of that <source>, in short it says this sources has time values of the animation in floats.

The source who was referred to semantic = “OUTPUT” by the sampler has name=”TRANSFORM” in <param> child of <accessor> child of the <technique_common> child of that <source>, which says this sources has “X translation” values in floats for those times which we read from the previous source.

The source who was referred to semantic = “INTERPOLATION” by the sampler has name=”INTERPOLATION” in <param> child of <accessor> child of the <technique_common> child of that <source>, which says this sources has the interpolation values in Strings for those OUTPUTS which we read from the previous source. (In studio max those interpolation values are usually “LINEAR” so we will not read this source and assume they are all “LINEAR”)

What this last source means is that, if you see the <source>s, you are given OUTPUT values for two values of time. What happens if we want to run the animation on a time which falls in between those two time values? Then we apply interpolation to find the middle OUTPUT value for the in-between time value. And in this case it’s LINEAR interpolated.

Now if you see the TIME Source, that’s actually your key frames. And the OUTPUT one is the key frames data for the “X translation” of the Entity (joint).

So you pick the corresponding OUTPUT value for any time and apply that to the “X translation factor” of that entity in your code and the entity will be animated. To calculate the in-between values for more smooth animation you use the LINEAR interpolation.

Click here to go to: Implementation section in Part 2 for this section of Part 1

What interpolation means?

Interpolation means calculating any in-between value between (among) two (or more) values.

Let’s say we have “X” and “Y” values, to calculate the “Middle” value in between those two values we can use an interpolation factor of “0.5” which we call “T”. And to find the 3-Quater value in-between “X” and “Y” we use “T = 0.75” and so on.

You can run a loop on “T” from lets say 0.0 to 1.0 have any increment i.e 0.001, 0.01, 0.05 etc and you can get “Loop” many in-between values.

Now Linear Interpolation is a simple form of Interpolations. And the formula is as follows

float Interpolate( float a_Value1, float a_Value2, float a_T)

{

return ((a_Value2 * a_T) + ((1 - a_T) * a_Value1));

}          

If you see the code it says that if “a_T” is “Zero” then give me a_Value1, and if it’s “One” then give me a_Value2. And if it’s in-between “Zero and One” then it will give you value in-between a_Value1 and a_Value2.

Now there are other forms of Interpolations as well. Like Bezier, cubic etc. They have further complicated formulas. And they also consider more then two values to interpolate in-between. But we will only be using linear interpolations for the sake of simplicity.

Now as we discussed before. This is not the case which we will ever have in our example COLLADA documents. So let’s see what we will have?

Keeping our assumptions in mind, we will only have two types of <animation> nodes. We will either have 16 * 3 = 48 <source>s, 16 <sampler>s and 16 <channel> nodes or we will have 3 <source>s, 1 <sampler> and 1 <channel> node. In the first case the “target” attribute will have “transform (X) (Y)” after the last “/” in its value and in the second case the “target” attribute will have “transform” after the last “/” in its value.

Either             <channel source="#astroSkeleton-sampler" target="astroBoy_Skeleton/transform (0) (0)"/>

Or                    <channel source="#astroSkeleton-sampler" target="astroBoy_Skeleton/transform"/>

In the second form the values of the matrix which we backed in, are given in one <source> out of those 3 <source>s, just like the one <source> we read in reading inverse bind matrices from controller. While in the first form values of each component of the 4 x 4 matrix are given in different <source>s. And we have to combine them in one matrix when we read the data.

Now if you remember we read the Joint matrices for each joint from the <visual_scene> node. These values (which will be matrices, since we backed matrices) which we read from <animation> nodes for those joints, which are targeted through the “target” attribute of the <channel> of that <animation> will replace the Joint matrices, we read earlier from <visual_scene> for each key frame defined in the animation. And to calculate the world transformation matrix for each joint we will have to take this new Joint Matrix and multiply it with the parent Joint’s world transformation matrix.

And thatÔÇÖs all pretty much it. If you have read the whole tutorial from start to end, I guess you should be able to write your own exporter for COLLADA documents now. And you are ready to start reading the next part if you haven’t read in between the implementation sections.

5,457 thoughts on “Collada Tutorial

  1. green863.kaizensl.com/1.html

    Good day! I know this is somewhat off topic but I
    was wondering if you knew where I could locate a
    captcha plugin for my comment form? I’m using the same blog platform as yours and I’m having difficulty
    finding one? Thanks a lot!

    Reply
  2. azfcnc.com

    Very nice post. I simply stumbled upon your weblog and wanted to mention that I have
    really enjoyed browsing your blog posts. In any case I’ll be subscribing to your feed and I am hoping you write again soon!

    Reply
  3. shopgraceme.com

    Hey! This post couldn’t be written any better! Reading this
    post reminds me of my previous room mate! He always kept talking about this.
    I will forward this page to him. Fairly certain he will
    have a good read. Thank you for sharing!

    Reply
  4. scott716.irs-ein-tax-id-pr.com/---blackjack---.html

    Hi there! This is kind of off topic but I need some guidance from an established blog.

    Is it difficult to set up your own blog? I’m not very
    techincal but I can figure things out pretty quick. I’m thinking about setting up my own but I’m not sure where to begin. Do you have any points or suggestions?
    Appreciate it

    Reply
  5. audioshopjkt.com

    I do consider all the concepts you’ve offered to your post.
    They are really convincing and can certainly work. Still, the posts are too
    quick for beginners. May you please prolong them a bit from
    next time? Thanks for the post.

    Reply
  6. arbjwal.com

    whoah this blog is great i like studying your posts.
    Stay up the great work! You already know, a lot of individuals are hunting round
    for this information, you can aid them greatly.

    Reply
  7. ayelektrik.com

    Greate pieces. Keep posting such kind of info on your site.
    Im really impressed by it.
    Hi there, You’ve done a great job. I will certainly digg it and individually suggest to my
    friends. I am confident they’ll be benefited from this
    web site.

    Reply
  8. mumbai-indians.com

    I’m impressed, I have to admit. Seldom do I come across a
    blog that’s equally educative and entertaining, and without a doubt,
    you have hit the nail on the head. The issue is something
    which too few people are speaking intelligently about. I am very happy that I stumbled
    across this during my hunt for something concerning this.

    Reply
  9. zephyralumni.com

    Hey I know this is off topic but I was wondering if you
    knew of any widgets I could add to my blog that automatically tweet my newest
    twitter updates. I’ve been looking for a plug-in like this for quite some time and
    was hoping maybe you would have some experience with something like this.
    Please let me know if you run into anything. I truly enjoy
    reading your blog and I look forward to your new updates.

    Reply
  10. ubodys.com

    Fantastic site you have here but I was wondering if you knew
    of any discussion boards that cover the same topics discussed here?
    I’d really love to be a part of group where I can get suggestions
    from other experienced individuals that share the same interest.
    If you have any recommendations, please let me know.
    Cheers!

    Reply
  11. freeseobesttools.com

    We’re a bunch of volunteers and opening a new scheme in our community.
    Your web site offered us with valuable info to work on. You have done an impressive activity and
    our entire community will probably be grateful to you.

    Reply
  12. ward662.zoraya2020.com/archives/3

    Hi! Quick question that’s totally off topic. Do you know how to make
    your site mobile friendly? My web site looks weird when browsing from my
    apple iphone. I’m trying to find a template or plugin that might be able to resolve this issue.
    If you have any recommendations, please share.
    With thanks!

    Reply
  13. Malatya kay─▒s─▒ fiyatlar─▒

    Kay─▒s─▒s─▒ ile ├╝nl├╝ Malatya ilimizin e┼čsiz Malatya kay─▒s─▒s─▒n─▒ en taze ve uygun fiyatlar ile http://www.corumkuruyemis.com ├╝zerinden sat─▒n alabilirsiniz.
    Sizler i├žin sa─čl─▒k a├ž─▒s─▒ndan ├žok faydal─▒ olan di─čer kuru meyve ├že┼čitlerimize
    yine sitemiz ├╝zerinden ula┼čabilir ve T├╝rkiye’nin d├Ârt bir yan─▒nda kargo ile teslim alabilirsiniz.
    Afiyet olsun

    Reply
  14. fairndeal.com

    An interesting discussion is worth comment. I do think that you ought to write more on this subject matter, it might not be a taboo subject but usually folks don’t speak about such subjects.
    To the next! Best wishes!!

    Reply
  15. goyalbrother.com

    I was curious if you ever thought of changing the layout of your blog?
    Its very well written; I love what youve got to say. But maybe you could a little more in the way
    of content so people could connect with it better. Youve got an awful lot of text for only
    having one or two images. Maybe you could space it out better?

    Reply
  16. patel786.kangdrama.com/archives/2

    Admiring the time and effort you put into your site and in depth information you provide.

    It’s good to come across a blog every once in a
    while that isn’t the same old rehashed material.
    Fantastic read! I’ve saved your site and I’m including your RSS feeds to my Google account.

    Reply
  17. smith574.nhomkinhthuduc.com/greatest-internet-based-casinos-the-truth-that-payout.html

    First off I want to say excellent blog! I had a quick
    question which I’d like to ask if you do not mind.

    I was interested to find out how you center yourself and clear
    your mind before writing. I’ve had a hard time clearing my mind in getting
    my ideas out. I do enjoy writing however it just seems like
    the first 10 to 15 minutes are usually lost just trying to
    figure out how to begin. Any ideas or hints? Cheers!

    Reply
  18. Kassandra

    Hey! I just wanted to ask if you ever have any
    problems with hackers? My last blog (wordpress) was
    hacked and I ended up losing many months of hard work due to no back up.
    Do you have any methods to protect against hackers?

    Reply
  19. smartkidapp.com

    Hello, i read your blog occasionally and i own a
    similar one and i was just wondering if you get a lot of spam
    responses? If so how do you stop it, any plugin or anything you can recommend?
    I get so much lately it’s driving me mad so
    any support is very much appreciated.

    Reply
  20. ankara kiral─▒k vin├ž

    ankara kiral─▒k vin├ž i┼čletmesi Deneyimin ve Tecr├╝benin Adresi.
    Ankara kiral─▒k vin├ž, kiral─▒k sepetli vin├ž, vin├ž
    kiralama, kiral─▒k vin├ž hizmeti vermekte. ├çankaya kiral─▒k
    vin├ž olarak her t├╝rl├╝ y├╝kleme indirme , cephe giydirme
    gibi faaliyetlerde bulunmaktay─▒z.

    Reply
  21. Fethiye escort

    Fethiye escort olarak gen├ž ve ├ž─▒t─▒r seven siz de─čerli
    beylere kendi ├Â─črenci evimde hizmet vermekteyim.

    Kal─▒plar─▒na s─▒─čmayan deli dolu bir k─▒z─▒m, e─členceyi ve gece hayat─▒n─▒
    ├žok seviyorum.

    Bu i┼či hem okul hayat─▒ma maddi katk─▒ sa─člamas─▒ i├žin hem de yeni erkeklerle tan─▒┼čmak i├žin yap─▒yorum.

    A├ž─▒k├žas─▒ yaln─▒z ya┼čayan ve kendi evinde g├Âr├╝┼čen bayan olarak okuldan geldi─čimde kendimi yaln─▒z
    hissediyorum.

    Hem cinsel hem de sosyal vakit ge├žirece─čim erkeklerin yan─▒mda oldu─čunu hissetmek g├╝zel oluyor.

    Reply
  22. persianacreativa.com

    Wow that was strange. I just wrote an extremely long comment but after I clicked submit my
    comment didn’t show up. Grrrr… well I’m not writing all
    that over again. Anyways, just wanted to say great blog!

    Reply
  23. karimunonline.com

    Hey there excellent website! Does running a blog similar to this take
    a great deal of work? I’ve very little knowledge of computer programming but I had been hoping
    to start my own blog in the near future. Anyway, if
    you have any recommendations or techniques for new blog owners
    please share. I understand this is off topic however I simply needed to ask.

    Kudos!

    Reply
  24. collegeustaad.com

    I have been exploring for a little for any high-quality articles or weblog posts on this sort of
    house . Exploring in Yahoo I at last stumbled upon this website.

    Studying this information So i am glad to express that I have a very just right uncanny feeling
    I came upon just what I needed. I so much for sure will make sure to do not fail to remember this website and provides it
    a look regularly.

    Reply
  25. butikmasajistanbul.com

    We are a bunch of volunteers and opening a new scheme in our
    community. Your web site offered us with valuable information to work on. You’ve
    done a formidable activity and our entire group shall be thankful to you.

    Reply
  26. link

    Hello there! This blog post couldn’t be written any better!
    Looking through this post reminds me of my previous roommate!
    He always kept talking about this. I am going to forward this article to him.

    Fairly certain he’ll have a good read. Many thanks for sharing!

    Reply
  27. Fethiye escort

    Ben kumral tenli bir Fethiye escort oldu─čumu belirtmek istiyorum.

    B├╝y├╝k ve pembe u├žlu g├Â─č├╝slerim ├Ân sevi┼čme esnas─▒nda
    sizi b├╝y├╝k ┼čehvetlere s├╝r├╝kleyecek ve dolgun kal├žam─▒ her s─▒kt─▒─č─▒n─▒zda elinize gelen v├╝cudum kar┼č─▒s─▒nda anal ili┼čkiye girmemek i├žin kendinizi zor frenleyeceksiniz.

    Yeri olan gecelik ┼či┼čman bayan seanslar─▒m gecelik
    ve saatlik olarak sunulmaktad─▒r.
    Bunun d─▒┼č─▒nda profesyonel mas├Âz bayan olarak da en ate┼čli gecelerinizde sizlere
    fiziksel rahatl─▒k vaat ediyorum.

    Reply
  28. bw3dk.com

    You made some really good points there. I checked on the
    web to learn more about the issue and found most people
    will go along with your views on this web site.

    Reply
  29. electrocum.com

    Hmm it appears like your blog ate my first comment (it was super
    long) so I guess I’ll just sum it up what I wrote and say, I’m
    thoroughly enjoying your blog. I too am an aspiring blog blogger
    but I’m still new to everything. Do you have any recommendations
    for novice blog writers? I’d really appreciate it.

    Reply
  30. watson105.jojobet132.com/p/58

    Whats up this is kind of of off topic but I was wanting to know if blogs use WYSIWYG editors or if you
    have to manually code with HTML. I’m starting a blog soon but have no coding expertise so I wanted to get guidance from someone with experience.
    Any help would be enormously appreciated!

    Reply
  31. dinovu.com

    I’ll right away seize your rss feed as I can not to find your e-mail
    subscription hyperlink or e-newsletter service. Do you have any?
    Please let me realize so that I could subscribe. Thanks.

    Reply
  32. Derek

    of course like your web-site but you need to take a look at the spelling
    on quite a few of your posts. A number of them are rife with spelling problems and I
    in finding it very troublesome to tell the truth on the other hand I’ll
    certainly come back again.

    Reply
  33. aria-residency.com

    Hi there exceptional blog! Does running a blog similar to
    this take a lot of work? I’ve no understanding of coding however I had been hoping
    to start my own blog soon. Anyway, if you have any ideas or tips for new blog owners please share.
    I know this is off subject however I just needed to ask.
    Cheers!

    Reply
  34. benhvienmathungyen.com

    Hi! This is my first comment here so I just wanted
    to give a quick shout out and tell you I genuinely enjoy reading your articles.
    Can you suggest any other blogs/websites/forums that
    deal with the same topics? Thanks for your time!

    Reply
  35. kickmemes.com

    Hey there would you mind letting me know which web host you’re working with?
    I’ve loaded your blog in 3 completely different browsers and I must say this blog loads a lot faster then most.
    Can you recommend a good internet hosting provider at a honest
    price? Cheers, I appreciate it!

    Reply
  36. ajorsharif.com

    Good day! This is my first visit to your blog!
    We are a team of volunteers and starting a new initiative in a community in the same niche.
    Your blog provided us valuable information to work on.
    You have done a extraordinary job!

    Reply
  37. idhayaengg.com

    Hi there, i read your blog occasionally and i own a similar one and i was just curious if you get a lot of spam remarks?
    If so how do you protect against it, any plugin or anything you can recommend?
    I get so much lately it’s driving me crazy so any assistance is very much appreciated.

    Reply
  38. madangoharan.com

    Appreciating the time and effort you put into your blog
    and detailed information you offer. It’s awesome to come across
    a blog every once in a while that isn’t the same out of date rehashed information. Excellent read!

    I’ve saved your site and I’m including your RSS feeds to my Google account.

    Reply
  39. cook936.uschinamedicaldevice.com/archives/60

    Hello there I am so happy I found your blog
    page, I really found you by accident, while I was browsing on Yahoo for something
    else, Anyways I am here now and would just like to say kudos for a
    fantastic post and a all round exciting blog (I also love the
    theme/design), I don’t have time to look over it all at the minute but
    I have book-marked it and also included your
    RSS feeds, so when I have time I will be back to read a lot more, Please do keep up the
    great work.

    Reply
  40. Sarah B

    What’s up?

    I found this article very interesting…please read!

    Do you remember the blockbuster hit film The Matrix that was released in 1999? You may not know this, but it has deep spiritual implications concerning the times we are living in and Bible prophecy.

    It tells a story of how these “agents” are trying to turn us into machines. We are closer then ever before for this to become a reality when they cause us to receive an implantable microchip in our body during a time when physical money will be no more.

    You may have seen on NBC news concerning the implantable RFID microchip that some people are getting put in their hand to make purchases, but did you know this microchip matches perfectly with prophecy in the Bible?

    “He (the false prophet who deceives many by his miracles) causes all, both small and great, rich and poor, free and slave, to receive a mark on their right hand or on their foreheads, and that no one may buy or sell except one who has the mark or the name of the beast, or the number of his name…

    You also may have heard of the legendary number “666” that people have been speculating for possibly thousands of years on what it actually means. This article shares something I haven’t seen before, and I don’t think there could be any better explanation for what it means to calculate 666. This is no hoax. Very fascinating stuff!

    …Here is wisdom. Let him who has understanding calculate the number of the beast, for it is the number of a man: His number is 666″ (Revelation 13:16-18 NKJV).

    To see all the details showing why the Bible foretold of all these things, check out this article!

    Article: https://biblewoke.com/rfid-mark-of-the-beast-666-revealed

    GOD is sending out His end time warning:

    “Then a third angel followed them, saying with a loud voice, ‘If anyone worships the beast and his image, and receives his mark on his forehead or on his hand, he himself shall also drink of the wine of the wrath of God, which is poured out full strength into the cup of His indignation. He shall be tormented with fire and brimstone in the presence of the holy angels and in the presence of the Lamb. And the smoke of their torment ascends forever and ever; and they have no rest day or night, who worship the beast and his image, and whoever receives the mark of his name'” (Revelation 14:9-11).

    In the Islamic religion they have man called the Mahdi who is known as their messiah of whom they are waiting to take the stage. There are many testimonies from people online who believe this man will be Barack Obama who is to be the biblical Antichrist based off dreams they have received. I myself have had strange dreams about him like no other person. So much so that I decided to share this information.

    He came on stage claiming to be a Christian with no affiliation to the Muslim faith…

    “In our lives, Michelle and I have been strengthened by our Christian faith. But there have been times where my faith has been questioned — by people who don’t know me — or they’ve said that I adhere to a different religion, as if that were somehow a bad thing,” – Barack Obama

    …but was later revealed by his own family members that he indeed is a devout Muslim.

    So what’s in the name? The meaning of someones name can say a lot about a person. God throughout history has given names to people that have a specific meaning tied to their lives. How about the name Barack Obama? Let us take a look at what may be hiding beneath the surface…

    “And He (Jesus) said to them (His disciples), ‘I saw Satan fall like lightning from heaven'” (Luke 10:18).

    In the Hebrew language we can uncover the meaning behind the name Barack Obama.

    Barack, also transliterated as Baraq, in Hebrew is: lightning

    baraq – Biblical definition:

    From Strongs H1299; lightning; by analogy a gleam; concretely a flashing sword: – bright, glitter (-ing, sword), lightning. (Strongs Hebrew word H1300 baraq baw-rawk’)

    Barak ‘O’bamah, The use of bamah is used to refer to the “heights” of Heaven.

    bamah – Biblical definition:

    From an unused root (meaning to be high); an elevation: – height, high place, wave. (Strongs Hebrew word H1116 bamah baw-maw’)

    The day following the election of Barack Obama (11/04/08), the winning pick 3 lotto numbers in Illinois (Obama’s home state) for 11/5/08 were 666.

    Obama was a U.S. senator for Illinois, and his zip code was 60606.

    Seek Jesus while He may be found…repent, confess and forsake your sins and trust in the savior! Jesus says we must be born again by His Holy Spirit to enter the kingdom of God…God bless!

    Reply
  41. rudrainfinity.com

    Hello, i think that i saw you visited my site thus i got here
    to go back the desire?.I am trying to to find things
    to enhance my website!I guess its adequate to make use of a
    few of your ideas!!

    Reply
  42. mystreammachine.com

    Oh my goodness! Impressive article dude! Thanks, However I am experiencing problems with your RSS.

    I don’t know the reason why I cannot subscribe to it. Is there anyone else getting the
    same RSS issues? Anyone that knows the answer can you kindly respond?
    Thanx!!

    Reply
  43. 360digitalking.com

    Great blog right here! Also your website
    so much up fast! What web host are you the use of?
    Can I get your affiliate hyperlink in your host?
    I wish my site loaded up as quickly as yours lol

    Reply
  44. n95 mask

    This is most useful post I have read, when everyone else addressing this won’t deviate from the accepted doggerel. You have a way with words, and I will check back as I get a lot from your posts.

    Reply
  45. bodybuildingbreakfast.com

    I think this is among the most vital information for me.
    And i am glad reading your article. But wanna remark on few
    general things, The web site style is ideal, the
    articles is really nice : D. Good job, cheers

    Reply
  46. ilmimarkaz.com

    Hello very cool site!! Man .. Excellent .. Amazing .. I will bookmark your
    blog and take the feeds additionally? I
    am satisfied to seek out a lot of useful info here within the publish, we’d like develop extra strategies in this regard, thank you for
    sharing. . . . . .

    Reply
  47. pariwisatajayapura.com

    Hello are using WordPress for your blog platform? I’m new to the
    blog world but I’m trying to get started and create my own. Do you need any html coding expertise to make your own blog?
    Any help would be really appreciated!

    Reply
  48. lovelylifelp.com

    Thanks , I have just been looking for info approximately this
    subject for ages and yours is the best I’ve found out till now.
    However, what in regards to the conclusion? Are you
    certain about the supply?

    Reply
  49. mohgadowood.com

    Aw, this was an exceptionally good post. Taking the time and actual
    effort to generate a very good articleÔÇŽ but what can I sayÔÇŽ I procrastinate a whole lot and don’t manage to get anything done.

    Reply
  50. bitspaceinteriors.com

    Hey there! I just wanted to ask if you ever have any trouble with hackers?

    My last blog (wordpress) was hacked and I ended up losing many months of
    hard work due to no data backup. Do you have any solutions to stop hackers?

    Reply
  51. Cami hal─▒s─▒

    Cami Hal─▒s─▒nda Fiyatta En B├╝y├╝k Etken
    Cami hal─▒s─▒ sat─▒n al─▒rken fiyat─▒ etkileyen en ├Ânemli hususlardan bir tanesi, hal─▒n─▒n ka├ž kat iple dokunmu┼č oldu─čudur.
    Zira cami hal─▒lar─▒ s├╝rekli de─či┼čtirilmedi─činden dolay─▒ ve
    bir kere d├Â┼čendi─činden dolay─▒ yaz ve k─▒┼č aylar─▒na uyum sa─člayacak olan kal─▒nl─▒kta bir hal─▒ sat─▒n almak daha do─čru olur.

    Aksi halde ince bir hal─▒ yaz aylar─▒ i├žin m├╝nasip olsa da k─▒┼č aylar─▒nda s─▒cak tutmayacak ve ayn─▒ zamanda yumu┼čak
    bir dokuya da sahip olmayacakt─▒r. Bu sebeple her mevsim d├╝┼č├╝n├╝lerek hal─▒n─▒n kal─▒nl─▒k derecesi ona g├Âre ayarlanmal─▒d─▒r.
    Yine ayn─▒ ┼čekilde hal─▒ fiyatlar─▒n─▒ etkileyen bir di─čer husus ise cami hal─▒s─▒n─▒n sade veya desenli olup olmamas─▒d─▒r.
    Son zamanlarda ├žok fazla tercih edilen Osmanl─▒
    desenleri di─čer hal─▒lara nazaran biraz daha farkl─▒ ve fazla fiyata sahip olabilir fakat g├Âr├╝nt├╝ ve kullan─▒┼č a├ž─▒s─▒ndan da olduk├ža g├╝zel oldu─ču i├žin bu fiyata de─čecektir.

    Reply
  52. carbontm.com

    Great article! That is the type of information that are meant to be shared around
    the internet. Disgrace on Google for no
    longer positioning this publish upper! Come
    on over and seek advice from my website . Thanks =)

    Reply
  53. tokoririperlengkapan.com

    Right here is the right blog for everyone who hopes
    to find out about this topic. You understand a whole lot its
    almost hard to argue with you (not that I really would want toÔÇŽHaHa).
    You definitely put a brand new spin on a subject that’s been written about for years.
    Great stuff, just excellent!

    Reply
  54. sanjeshsharma.com

    Heya i’m for the first time here. I found
    this board and I to find It truly useful & it
    helped me out a lot. I’m hoping to provide one thing back and aid others such as you aided
    me.

    Reply
  55. Stan

    Hi, i feel that i noticed you visited my blog thus i
    came to go back the desire?.I am trying to to find issues to improve
    my web site!I suppose its adequate to use
    some of your ideas!!

    Reply
  56. shystyles.com

    I think this is among the most important info for me. And i’m glad
    reading your article. But should remark on few general things, The site style is ideal,
    the articles is really nice : D. Good job, cheers

    Reply
  57. topstylishdecorshop.com

    My programmer is trying to persuade me to move to .net from PHP.
    I have always disliked the idea because of the expenses.
    But he’s tryiong none the less. I’ve been using WordPress on various websites for about a year and am nervous about switching
    to another platform. I have heard fantastic things about blogengine.net.
    Is there a way I can transfer all my wordpress posts into it?

    Any kind of help would be really appreciated!

    Reply
  58. sako24.com

    Wow, fantastic blog format! How long have you ever been blogging
    for? you made running a blog glance easy. The whole glance of your website is wonderful, as smartly as
    the content material!

    Reply
  59. Cami hal─▒lar─▒

    Cami Hal─▒lar─▒n─▒n Camiyi Tamamlay─▒c─▒ Olmas─▒ Gerekir

    Cami hal─▒lar─▒ kurumsal bir firmadan al─▒nmadan ├Ânce mutlaka caminin deseni ve
    renkleri incelenmeli, bu ┼čekilde bir karara vararak en do─čru tercih yap─▒lmal─▒d─▒r.
    ├ľrne─čin camideki avizenin ve duvarlar─▒n i┼č├žili─či, celi s├╝l├╝s ile yaz─▒lan dualar
    ve ayetlerin renkleri d├╝┼č├╝n├╝ld├╝─č├╝nde en uyumlu hal─▒y─▒ se├žmek
    daha do─čru olur. Bu ┼čekilde bir uyum caminin hem
    daha i├žten ibadet edilecek huzur dolu bir yer olmas─▒n─▒, hemde gelen turistler taraf─▒ndan g├Âz
    al─▒c─▒ ve de─čer verilen bir yer oldu─čunu g├Âstermek i├žin ├Ânemlidir.
    Zira ibadethanelere verilen ├Âzen dine verilen de─čeri g├Âsterecek ve insanlar da
    bu ┼čekilde izlenim b─▒rakacakt─▒r.

    Reply
  60. Cami hal─▒lar─▒

    Cami Hal─▒s─▒ Alabilece─činiz Kurumsal Firmalar

    Cami hal─▒lar─▒ al─▒nd─▒─č─▒ vakitte toplu kestirim yap─▒ld─▒─č─▒ i├žin kurumsal ve g├╝venilir yerlerden almak daha do─čru bir tercih olacakt─▒r.
    Hal─▒n─▒n al─▒naca─č─▒ firman─▒n g├╝venirlili─či
    hem hal─▒lar─▒n kalitesi hakk─▒nda yan─▒lmamak, hem desenlerinde her hangi bir defonun ├ž─▒kmamas─▒ veya ├ž─▒karsa ona g├Âre iade yada de─či┼čim yap─▒lmas─▒, hem de fiyat hususunda herhangi bir haks─▒zl─▒─ča
    u─čramamak i├žin olduk├ža m├╝himdir. Bu sebeple iyice ara┼čt─▒rma yapt─▒ktan sonra
    kurumsal g├╝venilir firmalardan camiler i├žin en uygun olan hal─▒lar─▒ almak do─čru bir tercih olacakt─▒r.

    Reply
  61. Cami hal─▒s─▒

    Cami Hal─▒s─▒ Nas─▒l Se├žilir?
    Camiler g├╝n i├žerisinde onlarca ki┼činin u─črad─▒─č─▒ ibadet mekanlar─▒ oldu─ču
    i├žin, i├žerisinin dizayn─▒na dikkat etmek gerekir.
    Cami hal─▒s─▒, k├╝rs├╝, kitapl─▒klar ve ayakkab─▒l─▒klar gibi daha bir├žok ┼čey bu nokta hesaba kat─▒larak ayarland─▒─č─▒ vakitte daha g├╝zel sonu├žlar elde edilecektir.

    Dikkat edilmesi gereken en ├Ânemli husus cami hal─▒s─▒n─▒n kolay kolay kirlenmeyen koyu renklerden se├žilmesidir.
    Bir de hal─▒n─▒n dokundu─ču kuma┼č evlerde se├žilen hal─▒lardan daha kaliteli
    olmal─▒d─▒r. ├ľrne─čin naylon bir hal─▒ daha ├žabuk kirlenece─či i├žin tercih edilmesi do─čru
    olmaz. Ayn─▒ zamanda s├╝rekli ibadet ve secde edildi─či i├žin insanlar─▒n ciltlerini tahri┼č etmeyecek iplerle dokunan hal─▒lar olmas─▒ gerekir.
    Bunlar dikkate al─▒nd─▒─č─▒nda daha g├╝zel sonu├žlar elde edilecektir.

    Reply
  62. acehpressphoto.com

    I’ve been browsing online more than 4 hours today, yet I never found
    any interesting article like yours. It’s pretty worth enough for me.
    In my opinion, if all site owners and bloggers made good content as you did, the
    web will be much more useful than ever before.

    Reply
  63. edwards434.ybsotomotiv.com/2020/12/-blackjack/

    With havin so much written content do you ever run into any
    issues of plagorism or copyright infringement? My website has a lot of exclusive content I’ve
    either written myself or outsourced but it looks like a lot of it is popping
    it up all over the internet without my authorization. Do you know any solutions to help stop content
    from being ripped off? I’d truly appreciate it.

    Reply
  64. lostlovespecialists.com

    Somebody necessarily help to make seriously posts I might state.
    That is the first time I frequented your website page and thus far?

    I amazed with the research you made to create this actual submit extraordinary.
    Great process!

    Reply
  65. ilanbildir.com

    Howdy! I know this is somewhat off topic but I was wondering which blog platform are you using for this website?
    I’m getting sick and tired of WordPress because I’ve had problems with hackers and I’m looking
    at alternatives for another platform. I would be awesome if you could point me in the direction of a good platform.

    Reply
  66. magnetictheme.com

    Interesting blog! Is your theme custom made or did you download
    it from somewhere? A theme like yours with a few simple adjustements would really make my blog jump out.
    Please let me know where you got your theme. Thanks a lot

    Reply
  67. learnerschoolsystem.com

    I believe that is one of the such a lot important info for me.

    And i’m glad studying your article. But should commentary on few
    common things, The site style is great, the articles is really excellent :
    D. Good process, cheers

    Reply
  68. bouncegrab.com

    I just like the helpful information you provide to
    your articles. I will bookmark your blog and check once
    more right here regularly. I’m reasonably certain I will learn a lot of new stuff right here!
    Good luck for the next!

    Reply
  69. Fivem Forum

    T├╝rkiyeÔÇÖde hizmet veren pek ├žok roleplay sunucusuna eri┼čebilmek i├žin de Fivem forum sitelerini aktif olarak
    kullanabilirsiniz Fivem Forum.

    Reply
  70. Cary

    Hi, I think your website might be having browser compatibility
    issues. When I look at your blog in Safari, it looks fine but when opening in Internet
    Explorer, it has some overlapping. I just wanted to give
    you a quick heads up! Other then that, awesome blog!

    Reply
  71. fthkagit.com

    Wow that was strange. I just wrote an extremely long comment but after I clicked submit my comment didn’t appear.
    Grrrr… well I’m not writing all that over again. Anyways, just wanted to say
    wonderful blog!

    Reply
  72. green674.thedragonboxepidemic.com/baccarat----/

    Just desire to say your article is as astonishing. The clearness
    in your submit is just nice and that i can assume you’re a professional in this subject.
    Fine with your permission let me to take hold of your
    RSS feed to keep up to date with approaching post. Thanks
    one million and please carry on the enjoyable work.

    Reply
  73. takip├ži sat─▒n al

    Hey! This is my first visit to your blog! We are a group of volunteers and starting a new
    project in a community in the same niche. Your blog provided us
    useful information to work on. You have done a marvellous job!

    Reply
  74. elqdev19.com

    I simply couldn’t leave your site prior to suggesting that I actually
    enjoyed the standard information a person supply to your guests?
    Is going to be back steadily to inspect new posts

    Reply
  75. butik

    Mazi butik en g├╝zel elbise modelleri ile y─▒l─▒n en ┼č─▒k ├╝r├╝nlerini sizlere sunuyor.

    Elbiseler ve kad─▒n giyim ├╝r├╝nlerinde en ├žok tercih edilen mazi butik al─▒┼čveri┼č sitesi yeni sezonun trendlerini belirliyor.
    Kad─▒n k─▒yafetleri i├žin sizde mazibutik.com ‘u ziyaret edebilir yeni
    sezon ┼čifon elbiseler, uzun elbiseler dahil bir ├žok kategoriye g├Âz atabilirsiniz.

    Butik firmalar─▒ndan al─▒┼čveri┼č art─▒k online olarak yap─▒l─▒yor ve Mazi Butik
    kad─▒n giyim ├╝r├╝nlerinde ├Âzellikle elbise kategorisinde sizlere
    y├╝zlerce model sunuyor. En ├žok tercih edilen ┼čifon elbiseler ve uzun g├Âmlek elbiseler olarak ├Âne ├ž─▒k─▒yor.

    Reply
  76. Roma

    Terrific article! That is the kind of info that are supposed
    to be shared across the net. Disgrace on Google for not positioning this
    put up upper! Come on over and visit my site . Thanks =)

    Reply
  77. epigiste.com

    You really make it appear really easy with your presentation but
    I to find this matter to be actually something that I think I would never understand.

    It seems too complicated and extremely broad for me.
    I’m looking forward in your subsequent publish, I’ll try to get the
    hang of it!

    Reply
  78. Dorothy

    Hi! I could have sworn I’ve visited this web site before but
    after browsing through many of the articles I realized it’s
    new to me. Regardless, I’m certainly pleased
    I found it and I’ll be book-marking it and checking
    back regularly!

    Reply
  79. bigcountryhandyworks.com

    Right here is the perfect web site for everyone who wants to understand this topic.
    You understand a whole lot its almost tough to argue with you (not that I really would want toÔÇŽHaHa).
    You definitely put a new spin on a topic which has been written about for years.
    Great stuff, just great!

    Reply
  80. muanhathongthai.com

    hey there and thank you for your information ÔÇô I’ve certainly picked up something new
    from right here. I did however expertise a few technical points using this site, since I experienced to reload the site many times previous to I could get it to load correctly.
    I had been wondering if your hosting is OK?
    Not that I am complaining, but slow loading instances times will
    often affect your placement in google and can damage
    your high quality score if advertising and marketing with Adwords.
    Well I’m adding this RSS to my e-mail and can look out for a lot more of your respective interesting
    content. Make sure you update this again soon.

    Reply
  81. amphawanamulet.com

    Have you ever thought about adding a little bit more
    than just your articles? I mean, what you say is valuable
    and all. But imagine if you added some great pictures
    or video clips to give your posts more, “pop”! Your content is excellent but with
    images and video clips, this website could definitely be one of the
    most beneficial in its field. Awesome blog!

    Reply
  82. gomoviesnow.com

    You have made some really good points there. I looked on the internet to find out more about the issue and found most individuals will go
    along with your views on this site.

    Reply
  83. expansiondma.com

    I am really impressed with your writing skills and also with the
    layout on your weblog. Is this a paid theme
    or did you modify it yourself? Either way keep up the excellent quality writing, it is rare to see a great blog like
    this one nowadays.

    Reply
  84. g7graphite.com

    I am extremely impressed with your writing skills as well as with the layout on your blog.

    Is this a paid theme or did you modify it yourself?

    Anyway keep up the excellent quality writing, it is rare to see a nice blog like this one these days.

    Reply
  85. rungtaynguyen.com

    Great beat ! I wish to apprentice at the same time as you amend your site, how can i subscribe for a weblog
    website? The account helped me a applicable deal. I had been tiny bit
    familiar of this your broadcast provided bright clear
    concept

    Reply
  86. elbise

    elbise Mazi butik en g├╝zel elbise modelleri ile y─▒l─▒n en ┼č─▒k
    ├╝r├╝nlerini sizlere sunuyor. Elbiseler ve kad─▒n giyim ├╝r├╝nlerinde en ├žok tercih edilen mazi butik al─▒┼čveri┼č sitesi yeni
    sezonun trendlerini belirliyor. Kad─▒n k─▒yafetleri i├žin sizde mazibutik.com ‘u ziyaret edebilir
    yeni sezon ┼čifon elbiseler, uzun elbiseler dahil bir ├žok kategoriye g├Âz
    atabilirsiniz.

    Butik firmalar─▒ndan al─▒┼čveri┼č art─▒k online olarak
    yap─▒l─▒yor ve Mazi Butik kad─▒n giyim ├╝r├╝nlerinde ├Âzellikle elbise kategorisinde sizlere y├╝zlerce model sunuyor.
    En ├žok tercih edilen ┼čifon elbiseler ve uzun g├Âmlek elbiseler olarak ├Âne ├ž─▒k─▒yor.

    Reply
  87. evenkeelops.com

    My spouse and I stumbled over here by a different web page and thought I
    might as well check things out. I like what I see so now i’m
    following you. Look forward to going over your web page repeatedly.

    Reply
  88. modakolisi.com

    Its such as you read my thoughts! You seem to understand a lot about this, such as you wrote the e-book in it or something.
    I think that you simply can do with a few p.c. to force the message home
    a bit, however instead of that, that is magnificent blog.
    A fantastic read. I’ll certainly be back.

    Reply
  89. amoriumbisiklet.com

    I blog frequently and I seriously appreciate your content.

    The article has truly peaked my interest. I am going to take a note of your site and keep checking for new
    information about once per week. I opted in for your Feed as well.

    Reply
  90. mrtahlil.com

    It’s really a great and helpful piece of info. I am glad that you just shared this helpful information with us.
    Please keep us informed like this. Thank you for sharing.

    Reply
  91. fikerico.com

    Wonderful blog! I found it while searching on Yahoo
    News. Do you have any suggestions on how to get
    listed in Yahoo News? I’ve been trying for
    a while but I never seem to get there! Thank you

    Reply
  92. sandiesinteriors.com

    Oh my goodness! Awesome article dude! Thank you, However I am
    going through problems with your RSS. I don’t know why I cannot
    subscribe to it. Is there anybody else getting
    the same RSS problems? Anyone who knows the answer will you kindly respond?
    Thanx!!

    Reply
  93. hamiyadak.com

    Hello there! I could have sworn I’ve been to this site before but after checking through some of the
    post I realized it’s new to me. Anyways, I’m definitely happy I found it and I’ll be book-marking and
    checking back often!

    Reply
  94. shamsuddoha.com

    I’ve been surfing online more than three hours these days, yet I by no means
    discovered any interesting article like yours.
    It is beautiful value sufficient for me. In my view, if all site
    owners and bloggers made just right content as you did, the internet might be much more useful than ever before.

    Reply
  95. nikparking.com

    It’s actually a nice and helpful piece of info. I’m happy that you just shared this helpful info
    with us. Please keep us informed like this.
    Thanks for sharing.

    Reply
  96. Bud

    What’s up to every one, as I am truly keen of reading this website’s post to be updated on a regular
    basis. It includes fastidious data.

    Reply
  97. yazaral

    Wow, superb blog format! How long have you ever been running a blog for?
    you make running a blog glance easy. The full glance of your web site is fantastic,
    as neatly as the content!

    Reply
  98. t├╝rk porno izle

    We stumbled over here from a different web page and thought I might as well check
    things out. I like what I see so i am just following you.
    Look forward to checking out your web page yet again.

    Reply
  99. Medyum

    Kabala mistik ilmini kullanarak b├╝t├╝n sorunlar─▒n─▒za ├ž├Âz├╝m bulan medyum levi 30 y─▒l─▒ a┼čk─▒n s├╝redir
    medyumluk yapmakta ve T├╝rkiye’de ilim irfan sahibi bir medyum
    olarak ad─▒ndan s─▒k├ža s├Âz ettirmektedir. Yapm─▒┼č oldu─ču ├žal─▒┼čamalar ile bu zamana kadar binlerce insan─▒n derdine derman olmu┼čtur.

    Reply
  100. mirtazapine generic

    My spouse and i have been really joyous that Jordan managed to do his research through your precious recommendations he had through the web pages. It is now and again perplexing to just find yourself handing out secrets and techniques which people today may have been selling. So we know we need the writer to give thanks to for that. The most important illustrations you have made, the simple web site navigation, the relationships you will help to instill – it’s got most powerful, and it’s really leading our son in addition to the family reason why the situation is fun, which is really mandatory. Thank you for the whole lot!

    Reply
  101. righterest.xyz

    wonderful post, very informative. I ponder why the opposite experts of this sector don’t understand this.
    You should continue your writing. I am confident,
    you’ve a great readers’ base already!

    Reply
  102. wilso969.clevercleo.com/2020/12/sports-since-we-have--/

    Hello there I am so glad I found your web site, I really found you
    by mistake, while I was researching on Yahoo for something else,
    Regardless I am here now and would just like to say kudos for a fantastic post
    and a all round exciting blog (I also love the theme/design), I don’t have time
    to browse it all at the minute but I have book-marked it and also added in your RSS feeds, so when I have time I will be back to read a lot more,
    Please do keep up the excellent job.

    Reply
  103. GSB Rental

    I will immediately grab your rss feed as I can’t to find your email
    subscription hyperlink or newsletter service.
    Do you have any? Please permit me realize so that I could subscribe.
    Thanks.

    my web blog GSB Rental

    Reply
  104. prananya.com

    Helpful information. Fortunate me I discovered your site unintentionally, and
    I am stunned why this coincidence did not took place earlier!
    I bookmarked it.

    Reply
  105. hukuklaw.com

    You’ve made some really good points there.
    I looked on the internet to learn more about the issue and found most
    individuals will go along with your views on this site.

    Reply
  106. cuahangthokhoa.com

    Thanks a bunch for sharing this with all people you actually
    recognise what you are talking approximately! Bookmarked.
    Please additionally visit my site =). We may
    have a hyperlink exchange agreement among us

    Reply
  107. saboohouse.com

    Right here is the right web site for everyone who wishes to
    find out about this topic. You realize a whole lot its almost hard
    to argue with you (not that I really would want toÔÇŽHaHa).
    You certainly put a fresh spin on a subject that’s been written about for
    years. Excellent stuff, just wonderful!

    Reply
  108. weblimoo.com

    I get pleasure from, lead to I discovered just what I used to be taking a
    look for. You’ve ended my four day lengthy hunt!
    God Bless you man. Have a great day. Bye

    Reply
  109. lee585.bilkontechnology.com/archives/1

    I have been browsing online greater than three hours as of late, but I never discovered any
    fascinating article like yours. It is pretty
    price sufficient for me. In my view, if all site owners and bloggers
    made excellent content as you did, the net might be a lot more helpful than ever before.

    Reply
  110. orenburg dating

    I do not even know how I ended up here, but I thought this post was good.
    I don’t know who you are but definitely you are going to a famous blogger if you aren’t already ­čśë Cheers!

    Reply
  111. ARIPIPRAZOLE online

    I am only writing to make you understand what a really good experience my wife’s princess obtained viewing your webblog. She noticed some things, which included what it is like to possess an ideal teaching spirit to make others with no trouble learn about specific tortuous things. You undoubtedly surpassed readers’ expected results. Thanks for providing those productive, trusted, informative as well as unique tips on your topic to Mary.

    Reply
  112. watson1002.naijashopguy.com/p/1

    May I just say what a relief to find somebody who actually knows
    what they are discussing on the web. You actually know how to bring a problem to light and make it important.
    More and more people really need to check this out and understand this side of your
    story. I was surprised that you aren’t more popular
    since you surely possess the gift.

    Reply
  113. CBD oil UK

    Cannabidiol, better called CBD oil, is among one of the most promising brand-new natural herbs for joint
    inflammation. What is it and what does it do?
    Exactly how can we utilize it securely and successfully?
    As even more information about cannabidiol emerges,
    we will certainly find out more about it and also
    just how it may help ease a few of the signs associated with joint inflammation. If you, or someone you understand, are experiencing arthritis, don’t wait – this short article may have the ability to assist you locate the alleviation you need!

    My site – CBD oil UK

    Reply
  114. Medyum

    G├╝n├╝m├╝zde medyum bulmak ger├žekten zor bir i┼čtir ├ž├╝nk├╝ piyasada bulunan medyumlar─▒n ├žo─ču sahtekar medyumlard─▒r.
    Bu y├╝zden ger├žek medyum ihtiyac─▒n─▒z varsa

    medyum levi gibi ilim irfan sahibi ve i┼čini ciddi anlamda yapan g├╝venilir medyumlar tercih edebilirsiniz.

    Reply
  115. creamgamatemas.com

    Thanks , I have just been looking for info approximately this topic for a while and
    yours is the greatest I have came upon so far.

    But, what in regards to the bottom line? Are you positive about the source?

    Reply
  116. lionsmafia.com

    Great blog here! Also your website loads up fast! What web host are you using?
    Can I get your affiliate link to your host? I wish my web site loaded up as quickly as yours lol

    Reply
  117. hamedshahbazkhan.com

    Hi, I do think this is a great site. I stumbledupon it ­čśë I’m going to return yet again since i have saved as a favorite it.
    Money and freedom is the best way to change,
    may you be rich and continue to guide others.

    Reply
  118. golesangswim.com

    After I initially left a comment I seem to have clicked on the -Notify me when new comments are added- checkbox and from now
    on whenever a comment is added I receive 4 emails with the exact same comment.
    Is there a way you are able to remove me from that service?
    Many thanks!

    Reply
  119. CBD oil UK

    CBD is Cannabidiol, a material originated from
    the marijuana plant. In fact, it has been made use of in U.S.

    for quite time now and has actually ended up being a topic of conversation in numerous
    countries around the world. When made use of or consumed, the compound
    has some unpleasant side results, which makes it an unsuitable remedy for those
    who experience from epilepsy. The seizures brought on by this problem are frequently deadly and also the people are under continuous supervision of an epilepsy registered nurse, who determines what
    dose of CBD oil need to be provided to the individual in accordance with his neurological history as well as current medical condition. As a
    matter of fact, CBD is likewise an essential material in the treatment of Parkinson’s disease
    as well as is used in differing proportions depending on exactly how quick the seizures are taking place and also the level of brain damage the patients have actually endured.

    Here is my homepage: CBD oil UK

    Reply
  120. seminole dating

    Unquestionably believe that which you said.
    Your favourite reason appeared to be on the internet the easiest factor to keep in mind of.
    I say to you, I definitely get annoyed even as other people consider worries that
    they plainly do not recognize about. You controlled to hit the nail upon the highest and also defined out the entire thing with no need side-effects , other folks
    could take a signal. Will likely be back to get more.

    Thanks

    Reply
  121. radiantcargo-spa.com

    I’m truly enjoying the design and layout of your site.
    It’s a very easy on the eyes which makes it much more enjoyable for me to come here and visit more often.
    Did you hire out a developer to create your theme?
    Fantastic work!

    Reply
  122. nourcarvoyage.com

    I absolutely love your blog.. Great colors & theme. Did you create this
    amazing site yourself? Please reply back as I’m trying to create
    my very own website and would love to find out
    where you got this from or exactly what the theme
    is named. Thank you!

    Reply
  123. Su perdesi

    Su perdesi uygulamalar─▒ kullan─▒ld─▒─č─▒ alana huzur, dinginlik katan ve modern g├Âr├╝n├╝ml├╝ dekoratif bir uygulamad─▒r.
    Kullan─▒m alan─▒na ├Âzel olarak tasarlad─▒─č─▒m─▒z
    su perdesi ┼čelaleleri su sesinin rahatlat─▒c─▒ ├Âzelli─činden faydalan─▒lmas─▒n─▒
    sa─člar. ─░┼č yerlerinin stresli ve zor ge├žen saatlerinde ├žal─▒┼čanlar─▒n─▒z─▒ rahat ettirmek dinlendirmek isterseniz
    hemen Firmam─▒z ile ileti┼čime ge├žerek sizlere uygun, ├Âzel tekliflerimizi ve modellerimizi g├Ârerek i├žerisinden istedi─činizi se├žebilirsiniz.

    Reply
  124. gabsportonline.com

    I got this web page from my buddy who shared with me about this website
    and at the moment this time I am browsing this web site and reading very informative articles or reviews
    at this time.

    Reply
  125. tak-music.com

    This is the right site for anyone who hopes to understand this topic.
    You realize a whole lot its almost tough to argue with you (not that
    I actually would want toÔÇŽHaHa). You certainly put a new
    spin on a topic that’s been written about for years. Great
    stuff, just excellent!

    Reply
  126. Ralph

    I know this site gives quality depending content and additional data, is there any other website which presents these things in quality?

    Reply
  127. viagra price

    Thanks for your own work on this website. My mum takes pleasure in setting aside time for research and it is simple to grasp why. We notice all relating to the powerful way you provide very important tips and hints via your website and therefore strongly encourage response from visitors on this subject matter while our own simple princess is without a doubt understanding so much. Take pleasure in the rest of the year. Your performing a useful job.

    Reply
  128. holdingags.com

    Howdy! Someone in my Myspace group shared this site with us so I
    came to take a look. I’m definitely loving the information. I’m book-marking and
    will be tweeting this to my followers! Excellent
    blog and amazing design.

    Reply
  129. dayesuturunleri.com

    Hi there would you mind letting me know which hosting company you’re utilizing?
    I’ve loaded your blog in 3 completely different internet browsers and I must say this blog loads a lot faster then most.
    Can you suggest a good hosting provider at a honest price?
    Thank you, I appreciate it!

    Reply
  130. CBD oil

    Cannabidiol, likewise referred to as CBD, is a lipophlic photo-cannabinoid located in Michigan. It is among the minority of all understood cannabinoids and make up greater than 40 percent of the plant’s weight.
    The various other two phytochemicals are both unidentified.
    Despite the absence of understanding regarding its wellness advantages,
    the only reason many people take CBD is since it’s made use of in the therapy of chronic discomfort.
    If you wish to know even more regarding CBD, read on …

    Also visit my homepage: CBD oil

    Reply
  131. istanbul ankara nakliyat

    istanbul ankara nakliyat Nakliye alan─▒nda m├╝┼čterilerimize ─░stanbul
    ankara aras─▒ nakliye hizmetleri sunmaktay─▒z.
    Bizleri tercih ederek sorunsuz bir ta┼č─▒mac─▒l─▒k hizmeti
    alabilirsiniz.

    Reply
  132. CBD oil UK

    Cannabidiol, or CBD oil, is a new compound that has shown guarantee for dealing with people with persistent discomfort.
    It was originally discovered by crash: in 1940, a chemist discovered that including a substance to a marijuana bud could
    create a total cessation of nerve signals in the brain, thus permitting a patient struggling with extreme pain to reduce
    his or her suffering by quiting the nerve signals being boosted.
    This exploration brought about the study of CBD, which when utilized
    as an extract from the marijuana plant, has actually been located to successfully alleviate pain with no side effects.
    As a result of these promising results, scientists are now investigating CBD for
    its feasible use in treating a selection of disorders.

    Feel free to visit my web blog :: CBD oil UK

    Reply
  133. purchase sildenafil

    I am only writing to make you understand what a superb experience our princess undergone viewing your webblog. She picked up such a lot of things, with the inclusion of what it is like to possess an ideal teaching spirit to make many more easily fully understand certain complicated matters. You actually did more than my desires. I appreciate you for delivering such great, healthy, educational and also cool guidance on that topic to Evelyn.

    Reply
  134. vardenafil online

    Thanks for your entire labor on this web site. My mother take interest in participating in research and it is simple to grasp why. My spouse and i notice all regarding the powerful tactic you produce useful thoughts via your website and in addition recommend response from the others on this subject then our own princess is undoubtedly studying a whole lot. Take pleasure in the rest of the year. You have been performing a terrific job.

    Reply
  135. Su perdesi

    Su ┼čelalesi olarak da bilinen Su perdesi bir alanda alan─▒n daha dekoratif ve daha ho┼č g├Âz├╝kmesini sa─člayacak olan dekoratif bir uygulamad─▒r.
    Su perdesi uygulamas─▒nda ki ilk ama├ž yapay bir ┼čelale g├Âr├╝n├╝m├╝ vermesidir.
    Su perdesi ile evinizi, bah├ženizi, ofisinizi dekoratif bir ├ž├Âz├╝me ula┼čt─▒rabilirsiniz.

    Su ┼čelalesi olarak da bilinen Su perdesi bir alanda alan─▒n daha dekoratif ve
    daha ho┼č g├Âz├╝kmesini sa─člayacak olan dekoratif bir uygulamad─▒r.

    Su perdesi uygulamas─▒nda ki ilk ama├ž yapay bir ┼čelale
    g├Âr├╝n├╝m├╝ vermesidir. Firmam─▒z deneyimli ├žal─▒┼čanlar─▒m─▒z ile y─▒llard─▒r bu alanda sizlere hizmet vermektedir.

    Reply
  136. thomas611.globalcybercloud.com/archives/1

    Have you ever considered about adding a little bit more than just your articles?
    I mean, what you say is fundamental and all.
    However think of if you added some great images or video clips to
    give your posts more, “pop”! Your content is excellent but with images and video
    clips, this blog could definitely be one of the greatest in its niche.
    Superb blog!

    Reply
  137. pralakshahospitals.com

    You really make it seem so easy with your presentation but I in finding this topic to
    be really one thing that I feel I might by no means understand.
    It seems too complex and very broad for me. I’m taking a look forward on your next put up, I will attempt to get the hold of
    it!

    Reply
  138. majid-ahmadi.com

    I have been surfing online more than three hours these days, but I by no means found any fascinating
    article like yours. It’s pretty value enough for me.

    In my view, if all site owners and bloggers made good content as you probably did,
    the internet might be a lot more helpful than ever before.

    Reply
  139. hughes187.wowlovelynails.com/1.html

    Its like you read my mind! You appear to grasp so
    much approximately this, like you wrote the guide in it or something.

    I feel that you just could do with a few % to drive the message house a little bit, however instead of that, this is fantastic blog.

    A fantastic read. I will definitely be back.

    Reply
  140. wood224.ameublementetplus.com/--to-sports.html

    Howdy! This is kind of off topic but I need some advice from an established blog.
    Is it very difficult to set up your own blog? I’m not very
    techincal but I can figure things out pretty fast.
    I’m thinking about making my own but I’m not sure where to begin. Do you have any ideas or suggestions?
    Thank you

    Reply
  141. ariaagahi.com

    Howdy, i read your blog occasionally and i own a similar one and i was just wondering if you get
    a lot of spam responses? If so how do you protect against it,
    any plugin or anything you can suggest? I get so much lately it’s driving me
    crazy so any assistance is very much appreciated.

    Reply
  142. edwards950.jmgblegal.com/1.html

    I don’t know if it’s just me or if perhaps everyone else encountering
    issues with your blog. It appears like some of the text in your posts are running
    off the screen. Can somebody else please comment
    and let me know if this is happening to them as well? This could be a
    problem with my web browser because I’ve had this happen before.
    Thanks

    Reply
  143. celecitymedia.com

    Unquestionably believe that that you stated.
    Your favourite reason seemed to be at the net the easiest thing to consider
    of. I say to you, I certainly get annoyed while other folks consider worries that they just don’t understand about.
    You managed to hit the nail upon the top and defined out the whole thing with no need side-effects , other people could take
    a signal. Will likely be back to get more. Thanks

    Reply
  144. brown397.assamcareerpoint.com/2020/12/-blackjack-/

    Hey I am so excited I found your blog page, I really found you by mistake, while I was searching on Aol for
    something else, Anyhow I am here now and would just like to say cheers
    for a tremendous post and a all round enjoyable blog (I also love the theme/design), I donÔÇÖt have time to look
    over it all at the minute but I have bookmarked it and also included
    your RSS feeds, so when I have time I will be back to read
    a lot more, Please do keep up the awesome jo.

    Reply
  145. polishedbyleanne.com

    Excellent post. I was checking continuously this blog and I am impressed!
    Extremely helpful information specifically the last part
    ­čÖé I care for such info much. I was looking for this particular
    information for a long time. Thank you and good luck.

    Reply
  146. CBD oil UK

    Maybe you’ve come across CBD oil or hemp oil as well as are wondering what
    these 2 things are everything about. Well, these two oils are significantly alike, however they offer two really different
    objectives. Hemp is a superfood, and the main ingredient in it is
    called CBD oil. It’s all natural as well as terrific for your wellness,
    however there are lots of other health and wellness benefits to this oil too.
    Below’s why you need to be considering CBD oil for your day-to-day use.

    my website: CBD oil UK

    Reply
  147. campbell286.esta-yapi.com/p/1

    Hi there would you mind sharing which blog platform
    you’re working with? I’m looking to start my own blog in the near future but I’m
    having a difficult time making a decision between BlogEngine/Wordpress/B2evolution and Drupal.
    The reason I ask is because your design seems different then most blogs and I’m looking for something completely
    unique. P.S My apologies for getting off-topic but I had
    to ask!

    Reply
  148. patel470.w-god.com/7---baccarat/

    I was wondering if you ever considered changing
    the layout of your website? Its very well written;
    I love what youve got to say. But maybe you could a little more in the way of content so people could connect with it better.
    Youve got an awful lot of text for only having 1 or two pictures.
    Maybe you could space it out better?

    Reply
  149. taylor543.marietasshops.com/archives/1

    Hi I am so delighted I found your website, I really found you by error, while I was looking on Askjeeve for something else, Anyways I am here
    now and would just like to say thanks a lot for a marvelous post and
    a all round exciting blog (I also love the theme/design), I
    don’t have time to browse it all at the minute but I have saved it and
    also added in your RSS feeds, so when I have time I will be back to read a great deal more, Please do keep up the
    superb work.

    Reply
  150. clarke1053.livestreamhcm.com/2020/12/argument--baccarat/

    Hey would you mind sharing which blog platform you’re working with?
    I’m going to start my own blog in the near
    future but I’m having a hard time choosing between BlogEngine/Wordpress/B2evolution and Drupal.
    The reason I ask is because your design and style seems different then most
    blogs and I’m looking for something unique.
    P.S My apologies for being off-topic but I had to ask!

    Reply
  151. king518.sloshdesign.com/archives/1

    I was curious if you ever thought of changing the layout of your blog?
    Its very well written; I love what youve got to say. But
    maybe you could a little more in the way of content so
    people could connect with it better. Youve got an awful lot of
    text for only having one or two pictures. Maybe you could space it out
    better?

    Reply
  152. turner586.damonapk.com/p/1

    Attractive section of content. I just stumbled upon your website and in accession capital to assert that I acquire actually enjoyed account your blog
    posts. Anyway I’ll be subscribing to your feeds and even I achievement you access consistently fast.

    Reply
  153. learnenglishonlinecourse.com

    Thank you for another informative site. Where else could
    I am getting that type of information written in such an ideal means?
    I’ve a venture that I am just now operating on, and I have been at the glance out for such info.

    Reply
  154. best CBD oil

    Cannabidiol, likewise referred to as CBD, is a lipophlic photo-cannabinoid discovered in Michigan. It is just one of the minority
    of all recognized cannabinoids and also make up greater than 40 percent of
    the plant’s weight. The other 2 phytochemicals are both unknown. Despite the lack of expertise regarding its
    wellness advantages, the only reason lots of people take CBD
    is due to the fact that it’s used in the treatment of persistent pain. If you would like to
    know even more concerning CBD, continued reading …

    Also visit my website; best CBD oil

    Reply
  155. traveliio.com

    I believe this is among the such a lot important information for me.
    And i’m glad reading your article. But should remark on some common issues,
    The site style is wonderful, the articles is in reality nice : D.

    Excellent activity, cheers

    Reply
  156. king953.proelitegaming.com/the-low-down-on-sports-exposed.html

    Hi there! I realize this is sort of off-topic however I had
    to ask. Does operating a well-established blog such as yours take a large amount of work?

    I’m brand new to operating a blog but I do write in my journal everyday.
    I’d like to start a blog so I will be able to share my experience and thoughts online.

    Please let me know if you have any ideas or tips for brand new aspiring bloggers.

    Thankyou!

    Reply
  157. salimdirani.com

    Thank you for every other informative web site. The place else may just I get that kind of
    info written in such an ideal manner? I’ve a undertaking that I’m simply
    now operating on, and I’ve been at the glance out for such info.

    Reply
  158. CBD oils UK

    CBD or Cannabidiol is an extremely intriguing drug since it is totally untapped
    as well as the oil is drawn out from an additional plant that does not contribute to worldwide warming at all!

    It has actually been located to be really reliable
    in dealing with several kinds of illness such as joint
    inflammation, anxiety, anxiousness, queasiness, epilepsy,
    erectile dysfunction and much more. The oil is
    originated from the cannabis plant as well as has been used for many years in the United States, in Mexico,
    in Canada, in Russia and lots of European nations.

    Also visit my site: CBD oils UK

    Reply
  159. CBD oils UK

    The benefits of CBD oil have been discussed in detail in different health magazines over the past couple of years.

    Many doctor have reported favorable outcomes,
    including lowering or eliminating the usual side effects most typically related to pharmaceutical drugs: queasiness, throwing up, dizziness,
    and sleep problems. By helping people manage their symptoms,
    CBD oil can offer a brand-new as well as encouraging method to deal with a large range of ailments
    and also conditions, consisting of pain, anxiousness,
    clinical depression, irritation, persistent tiredness, inflammation, nausea or
    vomiting, seizures, as well as much more.

    My webpage … CBD oils UK

    Reply
  160. hbfashionsbd.com

    Greetings from Ohio! I’m bored at work so I decided to browse your blog on my
    iphone during lunch break. I really like the information you provide here and can’t wait to take a look when I get home.

    I’m surprised at how fast your blog loaded on my mobile ..
    I’m not even using WIFI, just 3G .. Anyways, superb site!

    Reply
  161. moore643.sainiblogs.com/2020/12/27/what-s-slot-machines/

    Hey I know this is off topic but I was wondering if you
    knew of any widgets I could add to my blog that automatically tweet my newest twitter updates.
    I’ve been looking for a plug-in like this for quite some time and was hoping
    maybe you would have some experience with something like this.

    Please let me know if you run into anything. I truly enjoy reading your blog and I look forward
    to your new updates.

    Reply
  162. evolution-hvac.com

    Appreciating the time and energy you put into your site and detailed information you provide.
    It’s awesome to come across a blog every once in a while that isn’t the same outdated rehashed material.

    Great read! I’ve saved your site and I’m adding your RSS feeds to my Google account.

    Reply
  163. jones104.eastedencbd.com/1.html

    You actually make it seem so easy with your presentation but I find this topic to be actually something which I think
    I would never understand. It seems too complicated
    and extremely broad for me. I’m looking forward for your next post, I’ll try to get the hang of it!

    Reply
  164. ekisanbazar.com

    Hiya very nice web site!! Guy .. Excellent .. Superb ..
    I’ll bookmark your web site and take the feeds also?
    I’m happy to seek out numerous useful info right here within the post, we’d like develop extra techniques on this regard,
    thank you for sharing. . . . . .

    Reply
  165. roberts1064.defibtechushaarmour.com/sports---options.html

    Have you ever considered about including a little bit more
    than just your articles? I mean, what you say is important and all.

    However just imagine if you added some great images or video clips to give your
    posts more, “pop”! Your content is excellent but with
    images and clips, this blog could certainly be one of the greatest in its
    field. Amazing blog!

    Reply
  166. dadpajohan.com

    Aw, this was an extremely good post. Finding the
    time and actual effort to generate a very good articleÔÇŽ
    but what can I sayÔÇŽ I put things off a lot and don’t
    seem to get nearly anything done.

    Reply
  167. primehost24.com

    Hi, i think that i saw you visited my website thus i came to ÔÇťreturn the
    favorÔÇŁ.I’m attempting to find things to improve
    my website!I suppose its ok to use some of your ideas!!

    Reply
  168. ward958.globalcybercloud.com/54.html

    Hi! I know this is kinda off topic however I’d figured I’d ask.

    Would you be interested in exchanging links or maybe guest writing a blog article
    or vice-versa? My blog addresses a lot of the same topics as yours and I believe
    we could greatly benefit from each other. If you’re interested feel free
    to send me an e-mail. I look forward to hearing from you!
    Great blog by the way!

    Reply
  169. autoaccesoriesdeals.com

    I’m not sure where you’re getting your information, but good topic.
    I needs to spend some time learning more or understanding more.
    Thanks for fantastic info I was looking for this information for my mission.

    Reply
  170. apakistaniwanderer.com

    Very nice post. I just stumbled upon your blog and wished to say that I have truly enjoyed browsing your blog
    posts. In any case I’ll be subscribing to your feed and I hope you write again soon!

    Reply
  171. karatayevdenevenakliyat.com

    Hmm it appears like your site ate my first comment (it was super
    long) so I guess I’ll just sum it up what I submitted and say, I’m thoroughly enjoying your blog.
    I as well am an aspiring blog writer but I’m still new to
    everything. Do you have any tips and hints for beginner blog writers?
    I’d really appreciate it.

    Reply
  172. martin348.bold-ecommerce.com/what-is-blackjack.html

    Wonderful goods from you, man. I’ve take note your stuff
    prior to and you’re just too excellent. I actually like what you have got right here,
    really like what you’re saying and the way in which by which you
    assert it. You’re making it enjoyable and you continue to take care of to stay it
    smart. I can’t wait to read far more from you. This is really a terrific site.

    Reply
  173. wood860.e-egee.com/--sports-/

    With havin so much content do you ever run into any problems of plagorism or copyright violation? My website has
    a lot of exclusive content I’ve either authored myself or outsourced but it
    looks like a lot of it is popping it up all over the web without my permission. Do you know any techniques to
    help protect against content from being ripped off?
    I’d genuinely appreciate it.

    Reply
  174. ÝîîýŤîŰ│╝

    Oh my goodness! Amazing article dude! Thank you, However I am experiencing issues with your RSS. I donÔÇÖt understand the reason why I canÔÇÖt subscribe to it. Is there anybody “ÝîîýŤîŰ│╝
    else getting similar RSS problems? Anybody who knows the answer will you kindly respond? Thanx!!

    Reply
  175. ÝîîýŤîŰ│╝

    Thank you a lot for giving everyone an extraordinarily terrific opportunity to read articles and blog posts from this website. It really is very cool and also packed with a lot of fun for me and my office mates to visit your web site not less than thrice in 7 days to read the new secrets you have. And indeed, I am always “ÝîîýŤîŰ│╝
    impressed concerning the wonderful tricks you give. Selected 1 tips on this page are undeniably the finest I have had.

    Reply
  176. Playstation Card

    Does your site have a contact page? I’m having trouble
    locating it but, I’d like to shoot you an e-mail.
    I’ve got some suggestions for your blog you might be interested in hearing.

    Either way, great site and I look forward to seeing it improve over time.

    Reply
  177. officecom-office-officecom.com

    Its like you learn my mind! You appear to know a lot approximately this, such
    as you wrote the e book in it or something.
    I feel that you could do with some % to pressure the message house a little
    bit, but other than that, that is great blog.
    A great read. I’ll certainly be back.

    Reply
  178. adams360.whitube.com/archives/54

    Hi there! I know this is kinda off topic but I was wondering which blog platform
    are you using for this website? I’m getting fed up of
    Wordpress because I’ve had issues with hackers and I’m looking at alternatives for another platform.

    I would be fantastic if you could point me in the direction of a good platform.

    Reply
  179. e-nmbusa.com

    Hey I know this is off topic but I was wondering if you knew of any widgets I could add to my blog that automatically tweet my
    newest twitter updates. I’ve been looking for a plug-in like this for quite some time and
    was hoping maybe you would have some experience with something like this.
    Please let me know if you run into anything.
    I truly enjoy reading your blog and I look forward to
    your new updates.

    Reply
  180. atozj.com

    Wow, fantastic blog layout! How long have you been blogging for?
    you made blogging look easy. The overall look of your website
    is great, let alone the content!

    Reply
  181. ai-datasolutions.com

    I’m extremely impressed with your writing skills as well as with the layout on your blog.
    Is this a paid theme or did you customize it yourself? Anyway keep up the excellent quality writing, it’s rare to see a
    nice blog like this one today.

    Reply
  182. king763.karabudakasm.com/1.html

    Greetings I am so glad I found your webpage, I really found you by mistake, while
    I was looking on Google for something else, Regardless I am here now and
    would just like to say thanks a lot for a marvelous post and a
    all round thrilling blog (I also love the theme/design), I donÔÇÖt have time to read it all at the moment
    but I have book-marked it and also included your RSS feeds, so when I have time I will be
    back to read a great deal more, Please do keep up the
    superb b.

    Reply
  183. alfatekno.com

    Thanks for the marvelous posting! I actually enjoyed reading it, you are a great author.

    I will make certain to bookmark your blog and may come back sometime soon. I want to encourage yourself to
    continue your great writing, have a nice evening!

    Reply
  184. phohungsquan6binhtan.com

    Whats up are using WordPress for your blog platform? I’m new to
    the blog world but I’m trying to get started and create my own. Do you need any html coding knowledge to make your own blog?
    Any help would be really appreciated!

    Reply
  185. deleverrestore.com

    Hey there would you mind letting me know which webhost you’re using?
    I’ve loaded your blog in 3 different web browsers and I
    must say this blog loads a lot faster then most.
    Can you suggest a good hosting provider at a reasonable price?
    Thanks a lot, I appreciate it!

    Reply
  186. baidusjp.com

    I’ll right away grasp your rss feed as I can’t in finding your e-mail subscription hyperlink or newsletter
    service. Do you have any? Please let me understand so that
    I may subscribe. Thanks.

    Reply
  187. havaulasim.com

    I absolutely love your blog and find the majority of your post’s to be what precisely I’m looking for.
    can you offer guest writers to write content available for
    you? I wouldn’t mind composing a post or elaborating on a lot of the subjects you write regarding here.
    Again, awesome site!

    Reply
  188. robinson320.soufianegame.com/1.html

    Hello, i read your blog occasionally and i own a similar
    one and i was just wondering if you get a lot of spam comments?
    If so how do you prevent it, any plugin or anything you can advise?

    I get so much lately it’s driving me crazy so any help is very much appreciated.

    Reply
  189. mash02.com

    I do accept as true with all the ideas you’ve presented for your post.
    They’re very convincing and will definitely work.
    Nonetheless, the posts are too quick for novices. May you please prolong them a
    little from subsequent time? Thanks for the post.

    Reply
  190. morris639.adkurds.com/archives/1

    It is appropriate time to make some plans for the future and it’s time to be happy.
    I’ve read this post and if I could I want to suggest you few interesting things or tips.
    Maybe you could write next articles referring to
    this article. I desire to read more things about it!

    Reply
  191. souq-istanbul.com

    Hello, i read your blog from time to time and i own a similar one and i was just
    wondering if you get a lot of spam remarks? If so how do you protect
    against it, any plugin or anything you can advise?
    I get so much lately it’s driving me insane so any assistance is very much
    appreciated.

    Reply
  192. best CBD oil UK

    Possibly you’ve heard of CBD oil or hemp oil and are wondering what these
    2 things are all about. Well, these 2 oils are quite alike,
    but they offer two extremely different functions. Hemp is a
    superfood, and the cornerstone in it is called CBD oil. It’s all
    natural and also wonderful for your wellness, but there are several various other wellness advantages to
    this oil also. Below’s why you ought to be considering CBD oil for your daily use.

    Stop by my web blog – best CBD oil UK

    Reply
  193. jackson570.ekoithalat.com/baccarat--.html

    Hey I know this is off topic but I was wondering if you knew of any widgets I could add to my blog that automatically tweet my newest twitter updates.

    I’ve been looking for a plug-in like this for quite some
    time and was hoping maybe you would have some experience with something like this.

    Please let me know if you run into anything.
    I truly enjoy reading your blog and I look forward
    to your new updates.

    Reply
  194. drinyplus.com

    I’m truly enjoying the design and layout of your blog.
    It’s a very easy on the eyes which makes it much more pleasant for me
    to come here and visit more often. Did you hire out a developer to create your
    theme? Fantastic work!

    Reply
  195. clarke141.thehudsonatelier.com/p/1

    Hey, I think your website might be having browser compatibility issues.
    When I look at your blog site in Firefox, it looks fine but when opening in Internet
    Explorer, it has some overlapping. I just wanted to give you a quick heads up!

    Other then that, great blog!

    Reply
  196. magnoxbp.com

    We are a group of volunteers and starting a new scheme in our community.
    Your site offered us with valuable info to work on. You have done
    an impressive job and our entire community will be thankful to you.

    Reply
  197. pasaargad.com

    Oh my goodness! Incredible article dude! Many thanks, However
    I am encountering troubles with your RSS. I don’t understand why I am unable
    to join it. Is there anybody else getting the same RSS problems?
    Anyone who knows the solution can you kindly respond? Thanks!!

    Reply
  198. king580.ecombdblog.com/sports--/

    Hey there exceptional website! Does running a blog such as this take a great deal of work?
    I’ve absolutely no expertise in computer programming however I was
    hoping to start my own blog soon. Anyhow, if you have any
    suggestions or techniques for new blog owners please share.
    I understand this is off topic however I simply had to ask.

    Kudos!

    Reply
  199. johnson169.culstreetexports.com/2020/12/baccarat-.html

    I was curious if you ever thought of changing the page layout of your blog?
    Its very well written; I love what youve got
    to say. But maybe you could a little more in the
    way of content so people could connect with it better.
    Youve got an awful lot of text for only having 1 or 2 images.
    Maybe you could space it out better?

    Reply
  200. harris237.teknolee.com/p/1

    I do not know if it’s just me or if everybody else experiencing problems with
    your website. It appears as though some of the text on your content are running off the screen. Can somebody else please comment and let
    me know if this is happening to them as well? This may be
    a issue with my internet browser because I’ve had this happen before.
    Thanks

    Reply
  201. moore849.die2fit.com/simple-slot-machines-/

    May I simply say what a comfort to discover someone that really understands what they’re talking about on the net.
    You actually understand how to bring a problem to light
    and make it important. More and more people have to look at this
    and understand this side of the story. I was surprised you
    aren’t more popular given that you definitely possess the gift.

    Reply
  202. shiralatshop.com

    I’m curious to find out what blog platform you’re utilizing?

    I’m experiencing some small security problems with my latest
    website and I’d like to find something more risk-free. Do you have any solutions?

    Reply
  203. adultfriendfinder.

    It’s appropriate time to make some plans for the future and it’s time to
    be happy. I have read this post and if I could I want to suggest you few
    interesting things or advice. Perhaps you could write next
    articles referring to this article. I desire to read more things about it!

    Reply
  204. hookups login

    Heya i’m for the first time here. I came across this board and I find It truly useful & it
    helped me out a lot. I hope to give something back and aid others like you aided me.

    Reply
  205. unboxbollywood.com

    You can certainly see your enthusiasm within the article
    you write. The arena hopes for more passionate writers
    like you who are not afraid to mention how they believe.
    All the time go after your heart.

    Reply
  206. Free Accounts

    The Fimody site was opened in 2020. This website shares information in many areas.
    It does not only share information. It shares free
    accounts and codes. If you also want a free account, check our website.
    The accounts shared on our website belong to us.
    If you want the accounts, you can follow or control our website.
    Shared accounts are correct and new.

    Reply
  207. green-gigelie.com

    Howdy! I could have sworn I’ve visited this site before but after going through many of the articles I realized it’s
    new to me. Regardless, I’m certainly delighted I came across it and
    I’ll be bookmarking it and checking back frequently!

    Reply
  208. cook243.bestofhomedecorstuff.com/2020/12/27/buy-distinctive-electronic-cigarettes-e.html

    My coder is trying to convince me to move to .net from PHP.
    I have always disliked the idea because of the costs.
    But he’s tryiong none the less. I’ve been using Movable-type on several websites for about a
    year and am nervous about switching to another platform. I have heard good things about blogengine.net.
    Is there a way I can transfer all my wordpress content into
    it? Any kind of help would be greatly appreciated!

    Reply
  209. clark772.monikakopietz.com/how-exactly-to-choose-e-cigarette/

    Hi! I know this is kinda off topic but I’d figured I’d ask.
    Would you be interested in trading links or maybe guest authoring
    a blog post or vice-versa? My website addresses a lot of the
    same subjects as yours and I feel we could greatly benefit from each other.

    If you’re interested feel free to shoot me an email. I
    look forward to hearing from you! Fantastic blog by the way!

    Reply
  210. lee571.timal-charpente-menuiserie-aluminium-casablanca.com/vape-customer-review.html

    What i don’t understood is actually how you’re not really
    a lot more well-favored than you might be now. You’re so intelligent.

    You recognize therefore significantly in the case of this
    subject, made me in my opinion imagine it from a lot of
    various angles. Its like women and men are not fascinated until it’s something to accomplish with Woman gaga!
    Your own stuffs nice. At all times care for it up!

    Reply
  211. Leanna

    We’re a gaggle of volunteers and opening a brand new scheme in our community.
    Your website provided us with valuable info to work on. You have performed an impressive activity and our entire
    community will be thankful to you.

    Reply
  212. allen908.elitegmrz.com/information-media/

    Today, I went to the beach front with my children. I found a sea shell and gave it to my 4 year old daughter and said “You can hear the ocean if you put this to your ear.” She
    placed the shell to her ear and screamed. There was a hermit crab
    inside and it pinched her ear. She never wants to go back!
    LoL I know this is entirely off topic but I had to tell
    someone!

    Reply
  213. cook711.pajonhd.com/---on-slot-machines---.html

    Right here is the perfect web site for anybody who hopes to find out about this topic.

    You know a whole lot its almost hard to argue with you (not that
    I personally will need toÔÇŽHaHa). You definitely put a new spin on a topic which has
    been written about for many years. Great stuff, just excellent!

    Reply